我如何永远在jQuery中运行.animate函数?
-
05-07-2019 - |
题
$(this).css("left","100px");
function endless(){
$(this).animate({
left:'-=100px',
},{
easing: "linear",
duration: 5000,
complete: function() {
$(this).css('left','100px');
endless();
}
});
};
endless();
这是我尝试过的,但是使用这种方法我无法让事情发生变化。 我'使用jQuery 1.3.2。 有什么建议吗?
解决方案
您有动画错误的参数。它不需要选项哈希,只需要缓和,持续时间和回调的实际选项。此外,使用 this
时需要注意。最好将它作为一个参数传递给无穷无尽的函数。
$(this).css("left","100px");
function endless(elem){
$(elem).animate(
{ left:'-=100px' },
"linear",
5000,
function() {
$(elem).css('left','100px');
endless(elem);
}
);
};
endless(this);
其他提示
你需要在回调中调用endless()。
function endless(item) {
$(item).animate({"left": "-=100px"}, 5000, "linear", function(){
$(item).css("left","100px");
endless(item);
});
}
endless($(".myBox"));
您需要将 $(this)
替换为您要设置动画的元素的选择器。
大!这正是我搜索的内容,但现在,
我终于想出了如何切换它。使用以下函数,调用endless(0)停止,并使用endless(1)启用动画循环。
//loop animation forever
//args: takes 1 to loop, 0 to stop
function endless(loop)
{
//animate forever
if (loop==1)
{
$('#alink').animate(
{'opacity':'toggle'},
1000,
function () { endless(1) }
);
}
//stop animation
else
{
$('#alink').css('opacity',1).stop();
}
};
//sample call
$('#alink').toggle(function(){ endless(1) },function(){ endless(0) });
thanx表示初始代码!
不隶属于 StackOverflow