我试图触发一个动画作为对另一个动画的回调。事情是我只希望第二个动画在第一个动画完成时触发,从我读到的内容来看,这就是 .stop() 函数应该如何工作的。然而,在我编译的代码中,即使第一个动画没有完成,第二个动画也会触发。
这是代码:
$(document).ready(function(){
var angle = 0;
function arrowRotate() {
angle +=180;
$('#arrow img').stop().rotate({
animateTo: angle,
}, 100);
};
function ToggleOpen(heightValue) {
$('#information').stop().animate({
height : heightValue,
}, 1500, 'easeOutExpo', function(){
arrowRotate();
})
};
$('#information_container').hover(function(){
ToggleOpen(500);
}, function(){
ToggleOpen(0);
});
$('#arrow img').click(function(){
ToggleOpen(0);
});
});
我正在使用这个第三方插件:http ://code.google.com/p/jqueryrotate/
这是现场实施:http ://hopeand purpose.org
所以基本上我想要完成的是在悬停时提高 div 的高度,一旦完成,图像就会旋转。问题是即使高度动画没有完成并且 div 动画回到 0,图像仍然会旋转。
当我现在查看代码时,似乎我的问题可能是当它悬停时,它触发了 arrowRotate() 函数。包装 arrowRotate() 函数的 if 函数会是我最好的解决方案吗?