平滑这个jQuery切换动画?
我的jQuery函数生成的动画很不稳定,我一直在寻找不同的SO解决方案,例如添加jquery.easing,但没有运气。 问题是每个div中的iframe吗?
关于如何平滑动画的任何想法? 我的基本切换function是最好的方法吗?
JSFiddle: http : //jsfiddle.net/gwLcD/8/
基本标记在下面,并在页面上重复多次(每个“videotoggle”div之间有文本块):
View a few minutes of the (title) video
function:
$(document).ready(function(){ $(".videoblock").hide(); //closes all divs on first page load $(".entry-title").click(function() { $this = $(this); //this next code only allows one open div at a time $content = $this.closest('.videotoggle').find(".videoblock"); if (!$this.is('.active-title')) { $('.active-title').removeClass('active-title'); $this.addClass('active-title'); $(".videoblock:visible").slideToggle(400); //slide toggle $content.slideToggle(400); } }); });
安德鲁的解决方案是正确的,但我仍然会把这样的CSS(如果javascript关闭):.videoblock {width:560px; 身高:315px; 溢出:隐藏}
并添加同步动画:
$('.videoblock').css('height','0'); $(".entry-title").click(function() { $this = $(this); $content = $this.closest('.videotoggle').find(".videoblock"); if (!$this.is('.active-title')) { $('.active-title').removeClass('active-title'); $this.addClass('active-title'); $(".videoblock:visible").animate({height: "0"}, { duration: 400, queue: false }); $content.animate({height: "315"}, { duration: 400, queue: false }); } });
这是决赛的链接: http : //jsfiddle.net/gwLcD/21/
看看这个 – http://jsfiddle.net/vbXVR/ 。
它使用这个jquery
$(document).ready(function(){ $(".entry-title").click(function() { $(".videoblock").animate({height: "315"}, 1500); }); });
让我们这样看吧!
我不确定你将在这里加载多少这些iframe,但有一点似乎是非常肯定的; 如果你有一个太多,你将有足够的iframe与足够的youtubevideo加载。
这意味着,不必要的负载。 用户可能无法单击所有这些链接。 用户可能无法观看所有这些video。
所以:
-
资源不必要地膨胀,并且不必要地消耗用户的带宽。
-
而且,这不是可扩展的。 考虑一下,您需要在页面上显示50个这样的链接。 好。 只需10个。即便如此!
我正在为这个做一个jsfiddle。 完成之后会在这里发布!
您主要针对什么浏览器? 如果它是任何webkit浏览器或FireFox,那么你可以利用jquery后备的硬件加速CSS3过渡。
http://msdn.microsoft.com/en-us/scriptjunkie/hh304380
我不认为jQuery缓动当前使用CSS3过渡作为第一选项,但如果我错了,请纠正我。
看看: http : //css3.bradshawenterprises.com/all/
使用CSS3来破解一些东西并不会太费力。
您不想直接使用手风琴插件的任何特定原因? jQuery UI库应该非常好地处理这个问题。
此外,如果没有按预期工作,你可以尝试css3动画? 你可以在这里获得CSS3动画的要点: http : //titansturf.in/2012/01/12/using-css3-transitions/
您将必须创建两个类,一个具有div-hide
,其height: 0
,另一个具有div-show
,其具有所需的height
设置。 每当你想要切换时,只需使用jQuery更改类。
IMO,使用CSS3将是一个很好的选择,目标受众使用现代浏览器。 如果没有,您可以使用Modernizr根据所使用的浏览器类型更改工作方式。
- 使用JS-jQuery,我怎样才能使用unescape html并将`quotes&`放回字符串中?
- jQuery Touchwipe – 仅禁用1轴的默认滚动
- 将JavaScript显示添加到主页以从140个字符开始倒计时。 (Rails教程,第2版,第10章,练习7)
- jQuery AJAX / POST不向PHP发送数据
- jQuery:使用carouFredSel插件延迟加载
- 如何在不刷新页面的情况下使用jQuery更新数据库?
- 使用waitForKeyElements,是否可以阻止显示关键元素,并且只有在我的代码修改后才显示它?
- 如何为动态表添加标头
- 如何将此postgres db查询的结果转换为json以返回到我的jquery调用?