![](/img/trans.png)
[英]Which way is better, setInterval() or window.setInterval()?
[英]Better way than setInterval?
我在下面有当前函数,但是感觉有一种更好的方法可以写同样的东西。 我正在寻找一些最优化的方式来编写以下相同功能的见解,以及原因。
注意,这些都在$(function(){});
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$("#id").animate({marginRight : "15px"}, 'slow');
})
}
setInterval(m, 700)
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$("#id").animate({marginRight : "15px"}, 'slow',m);
});
}
m();
似乎基于您正在执行的操作,您希望随时间切换元素的运动。 您可以仅将原始函数m()
为在完成第二个内部动画时要执行的回调。
(function m(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$(this).animate({marginRight : "15px"}, 'slow',function(){
setTimeout(m,700);
});
});
})();
编辑:
它使用setTimeout,但是setTimeout是比setInterval更好的解决方案,因为它只有在前一个完成后才排队一个新的。 这将有助于防止jquery 1.6当前使用的RAF出现问题。
您可以凑合使用this
第一动画回调,而不是内再次发现它的。 除此之外,我认为这里没有任何进一步的改进。
m = function(){
$("#id").animate({marginRight : 0}, 'slow', function(){
$(this).animate({marginRight : "15px"}, 'slow');
})
}
setInterval(m, 700);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.