Jquery 淡入&;用动画的位置-更好的方法写这个?
有没有更好的方法来写以下内容Jquery 淡入&;用动画的位置-更好的方法写这个?,jquery,html,css,Jquery,Html,Css,有没有更好的方法来写以下内容 $(function(){ $('.start-here-notice').fadeIn(1000).animate({"left":"-155px"}, "slow") $('.start-here-notice').animate({"left":"-165px"}, "slow").delay(5000).fadeOut(1000); }); 它工作得很好,但我认为可能有一种更有效的方法来写这个。如
$(function(){
$('.start-here-notice').fadeIn(1000).animate({"left":"-155px"}, "slow")
$('.start-here-notice').animate({"left":"-165px"}, "slow").delay(5000).fadeOut(1000);
});
它工作得很好,但我认为可能有一种更有效的方法来写这个。如果是这样的话,我可能会再给它做几次动画
在这里继续学习,如有任何帮助,我们将不胜感激
谢谢 这个
$(function(){
$('.start-here-notice').fadeIn(1000).animate({"left":"-155px"}, "slow", function(){
$(this).animate({"left":"-165px"}, "slow").delay(5000).fadeOut(1000);
});
});
…我想到了。再说一次,这可能并不重要 我唯一马上想到的就是将jquery查找设置为变量
var startHereNotice = $('.start-here-notice');
startHereNotice.fadeIn(1000)...
可以在相同的动画调用中设置不透明度的动画
$('.start-here-notice').animate({"left":"-155px", "opacity":1}, "slow")
$('.start-here-notice').animate({"left":"-155px", "opacity":0}, "slow")
但请注意,ie6和ie7并不完全支持不透明度。使用阿尔法过滤器代替
编辑:好的,第二个调用,如果你想延迟去淡出,你的实现是好的。delay()是最有效的方法。使用find函数在jQuery中定义基于类的元素是最有效的,还包括html元素类型 您目前有:
$('.start-here-notice')
你应该考虑做这样的事情(假设开始这里是DIV)< /P>
要明确的是,如果页面上有少量到中等数量的DOM元素,并且JavaScript有限,那么几乎肯定不会注意到速度的提高。这是最有效的方法。- 通过链接,可以在对象上调用任意多个jQuery方法:
$(function(){ $('.start-here-notice') .fadeIn(1000) .animate({"left":"-155px"}, "slow") .animate({"left":"-165px"}, "slow") .delay(5000) .fadeOut(1000); });
- 按id访问元素比按类访问要快一些。(在本例中,差别很小,因为您只做了一次。)
- 如果要再次使用同一元素,可以将
的结果存储在一个变量中,以便只需查找一次。(同样,在这种情况下,性能的提高是微不足道的。当您同时多次使用jQuery对象(如处理大量元素)或频繁地(如在反复触发的事件处理程序中)时,您开始看到存储jQuery对象的好处。)$('.start here notice')
$(“#parent.start here notice”)
是等效的吗?如果是这样的话,性能上的好处是从id开始递减,而不是使用.find()
。通常省略标记名会更快(在CSS中也是如此)。这样,jQuery(或浏览器)就不必过滤结果,只包含div
s。你忽略标记名是正确的,我错了。但是,使用$(ID类)方法在技术上比使用$(ID).find(类)方法慢,因为jQuery将第一种方法转换为后者。它基本上消除了一个函数调用。我认为组合选择器速度更快是错误的,但这不是因为jQuery,它只是让选择器在较新的浏览器中querySelectorAll
。事实证明,在WebKit(您使用的是哪种浏览器?)中,querySelectorAll
对普通ID进行了高度优化,但对其他选择器的搜索速度较慢。这一点可以在WebKit中得到改进。
$(function(){
$('.start-here-notice')
.fadeIn(1000)
.animate({"left":"-155px"}, "slow")
.animate({"left":"-165px"}, "slow")
.delay(5000)
.fadeOut(1000);
});