如何减慢和停止当前jQuery动画?
jQuery问题。 我已设置动画。块向右移动5000px如何减慢和停止当前jQuery动画?,jquery,jquery-animate,Jquery,Jquery Animate,jQuery问题。 我已设置动画。块向右移动5000px $(".block").animate({"left": "+=5000px"}, 2000, 'linear'); 我需要的是在单击后缓慢停止此动画: ('#clickme').click(function() { // ... stop $(".block") animation, not immediately, but with some easing }); 使用jQuery可以做到这一点吗?如果您有任何建议,我们将不胜感
$(".block").animate({"left": "+=5000px"}, 2000, 'linear');
我需要的是在单击后缓慢停止此动画:
('#clickme').click(function() {
// ... stop $(".block") animation, not immediately, but with some easing
});
使用jQuery可以做到这一点吗?如果您有任何建议,我们将不胜感激。您可以使用.stop()函数立即停止动画:
然而,它确实很难停止。如果你正在制作动画,这将是一个非常突然的停止。我会在用户单击停止触发器时停止动画,然后启动一个新的动画,让人产生轻松停止的错觉。这里有一个例子:诀窍是调整第二个动画的设置,使事情顺利进行。您将希望结合持续时间和距离,使其与原始动画的速度相融合。我知道这很古老,但我会这样做:
var stopping = false;
var lastNow = 0;
$(".block").animate({left:"+=5000px"}, {
step: function(now){
if (stopping) {
var delta = lastNow - now;
$(this).stop().animate({ left : "+=" delta * 2 }, 1000, "easeInOutQuad");
stopping = false;
}
lastNow = now;
}});
要停止,请将stopping
设置为true
我尝试了stop(),然后使用+=100参数启动新动画。但这并不顺利。