我在jquery做动画。我有一个从网页左侧移动到右侧的循环图片。我使用了以下代码:
function run() { $("#run").animate({ left: "980px" }, 250).animate({
left: "-600px" }, 0); setTimeout("run()", 250);
}
一旦按下按钮,我想停止循环(或破坏功能)。
答案 0 :(得分:3)
setTimeout返回一个可用于取消它的值,
//Start
var ref = setTimeout(...);
//Stop
clearTimeout(ref);
另外,如果只是使用一个函数,那么传递它比强制使用eval更安全,
setTimeout(run, 250);
答案 1 :(得分:0)
听起来你想要这个动画一直运行直到用户按下按钮。为此,我会设置一个setInterval
循环并使用clearInterval
在点击按钮上停止它
var runTimer = setInterval(function() {
$("#run").animate({ left: "980px" }, 250).animate({ left: "-600px" }, 0);
}, 250);
$('#stopAnimation').click(function () {
clearInterval(runTimer);
}
答案 2 :(得分:0)
您想要调用清除超时。
var timeout;
function run() { $("#run").animate({ left: "980px" }, 250).animate({
left: "-600px" }, 0);
timeout =setTimeout("run()", 250);
}
function cancel() { clearTimeout(timeout); }
答案 3 :(得分:0)
在每个动画
之前尝试方法stop()function run() {
$("#run").stop().animate({ left: "980px" }, 250, function(){
$(this).css('left', '-600px');
});
setTimeout("run()", 250);
}