如果没有悬停区域的JQuery

时间:2013-01-23 00:38:36

标签: jquery jquery-animate jquery-hover

Hy,

我遇到了 JQuery hover()的问题。

当我将鼠标悬停在.sectionUpImage上时,会触发动画。问题是,当我离开该区域时,动画仍在运行,它将一直运行直到完成,然后它将返回到原始状态。

所以问题是当我没有徘徊 .sectionUpImage 时,我希望动画停止并返回原始状态

代码:

$(document).ready(function(){

    $('.sectionUpImage').hover(function(){

        $('.sectionUp').animate({"height": "+=314px"}, "slow");

    },function(){

        $('.sectionUp').animate({"height": "-=314px"}, "slow");

    });

});

如何申请?

谢谢

2 个答案:

答案 0 :(得分:3)

添加stop();

 $('.sectionUp').stop().animate({"height": "+=314px"}, "slow");

答案 1 :(得分:1)

亚当因使用stop()来阻止动画继续发挥作用。但是,由于您使用的是相对高度,因此您将遇到根据半动画元素的当前高度计算新高度的问题。有两种方法可以解决这个问题:

一:切换到绝对高度。您当前的jQuery将完美运行。类似的东西:

$(document).ready(function(){
    $('.sectionUpImage').hover(function(){
        $('.sectionUp').animate({"height": "314px"}, "slow");
    },function(){
        $('.sectionUp').animate({"height": "0px"}, "slow");
    });
});

二:使用stop( false, true )。这将在开始新动画之前将中断的动画跳转到其最终状态。这可能看起来有点刺耳,但至少会阻止任何不正确的最终高度。

http://api.jquery.com/stop/