停止后启动动画

时间:2011-06-13 15:16:37

标签: jquery jquery-animate

下面的代码停止动画,我希望能够再次启动它,在mouseleave上

$(function animate(){
$(".block").animate({left: '+=500px'}, 2000);
$(".block").animate({left: '0px'}, 1, animate);
});

$(".block").mouseenter(function(){
$(".block").stop( true, false);
});

$(".block").mouseleave(function(){
animate();//This does not work
});

2 个答案:

答案 0 :(得分:2)

我认为您正在尝试访问未定义的范围内的命名函数?

function animate(){
  $(".block").animate({left: '+=500px'}, 2000);
  $(".block").animate({left: '0px'}, 1, animate);
};

$(animate);

$(".block").mouseenter(function(){
  $(".block").stop( true, false);
});

$(".block").mouseleave(function(){
  animate();
});

我创建了this example,这可以帮助您迭代到有效的解决方案。

答案 1 :(得分:0)

尝试悬停以激活动画。

$(".block").hover(stop(),start());
function stop(){
  $(".block").stop( true, false);
});
function start(){
  $(".block").animate({left: '+=500px'}, 2000);
  $(".block").animate({left: '0px'}, 1, animate);
});