它有点像这样:
$("example").hover(function(){
("example").stop().show(/*More Code*/, callback());
}, function(){
("example").stop().hide(/*More Code*/, callback());
}
)
因此,如果鼠标在第一个动画完成之前离开该区域,它将停止所有动画,并跳过回调。有没有办法使用stop()并仍然执行回调函数?
答案 0 :(得分:1)
使用定时在动画结束时触发的setTimeout
而不是回调。
$("example").hover(function(){
$("example").stop().show(1000);
setTimeout(function() { /* do something */ }, 1000);
}, function(){
$("example").stop().hide(1000);
setTimeout(function() { /* do something */ }, 1000);
}
);
另一个选择是使用.stop(true,true)
而不是.stop()
。
清除队列,将动画发送到最后,然后触发回调。
$("example").hover(function(){
$("example").stop(true,true).show(1000);
}, function(){
$("example").stop(true,true).hide(1000);
}
);