[英]Javascript function is working on firefox only once
我具有以下javascript函数:
function kitemoving() {
setInterval(function(){
kite.animate({
top: '+=30'
},{
duration: 1500
});
kite.animate({
top: '-=30'
},{
duration: 1500
});
});
}
kitemoving();
这是小提琴
仅在Mozilla Firefox上运行正常的所有地方,使用此代码的所有动作都只能运行一次。 你能帮我理解为什么吗?
不要使用间隔,您可以轻松地使fx
队列饱和。 相反,请使用任何完整的动画回调,例如:
var kite = jQuery('.kite');
function kitemoving() {
kite.animate({
top: '+=30'
}, {
duration: 1500
});
kite.animate({
top: '-=30'
}, {
duration: 1500
}).promise().done(kitemoving);
}
kitemoving();
您必须为delay参数指定一个值。
setInterval至少需要两个参数。 从MDN报价
func
是要重复调用的函数。
delay
是setInterval()函数在每次调用func之前应等待的毫秒数(千分之一秒)。 与setTimeout一样,将强制执行最小延迟。
param1, param2,
等是传递给func指定的函数的其他参数。
因此,当您省略第二个参数时,您将无法期望已定义的行为。
为了使您的小提琴在Firefox中工作,您要做的就是为setInterval
调用提供间隔时间
setInterval(function(){
....
}, 3000);
这是一个更新的小提琴,可在Firefox中使用: http : //jsfiddle.net/wdodmvyu/5/
您没有指定间隔值,这就是壁虎挣扎的原因。
function kitemoving() {
setInterval(function(){
kite.animate({
top: '+=30'
},{
duration: 1500
});
kite.animate({
top: '-=30'
},{
duration: 1500
});
},300);//interval
}
kitemoving();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.