jQuery在开始新动画之前退出动画

时间:2012-01-14 14:29:21

标签: jquery animation

我有:

$('.p_m').mouseenter(function () {

    $(this).animate({
        marginTop: '10px',
        marginLeft: '10px',
        height: '150px',
        width: '150px'
    }, 10000);

}).mouseleave(function () {

    $(this).animate({
        marginTop: '35px',
        marginLeft: '35px',
        height: '100px',
        width: '100px'
    }, 10000);
});

当我离开班级'.p_m'超过10000毫秒时,即使我离开div类,mouseenter动画仍然继续。

如何跳过动画(mouseenter)或更好地使其快速,使其适合10000毫秒。

1 个答案:

答案 0 :(得分:3)

使用.stop()暂停当前动画。

$('.p_m').mouseenter(function () {

    $(this).stop().animate({
        marginTop: '10px',
        marginLeft: '10px',
        height: '150px',
        width: '150px'
    }, 10000);

}).mouseleave(function () {

    $(this).stop().animate({
        marginTop: '35px',
        marginLeft: '35px',
        height: '100px',
        width: '100px'
    }, 10000);
});

如果您希望动画在开始新动画之前跳到最后,请将true作为第二个参数传递。 .stop(true,true)