.hover()onmouseout brake for(){}

时间:2013-11-12 13:04:02

标签: jquery css for-loop onmouseout

$('#drugiGumb').hover(
    function () {
        for (var i = 0; i < 60; i++) {
            $('#drugiGumbSlika').delay(15).animate({ marginLeft: '-=149px' }, 1);
        }
        $('#drugiGumbSlika').animate({ marginLeft: '-8791px' }, 1);
    }, function () {
        $('#drugiGumbSlika').stop().animate({ marginLeft: '0px' }, 1);
    }
    );

大家好, 我有图像8791px宽度,它是一个图像中的动画。一帧是149x85px。为了动画,我创建了上面的代码。我的问题是我不能在mouseout上制动循环并且动画剂量停止。任何想法我怎么能做到这一点?

提前谢谢。

3 个答案:

答案 0 :(得分:1)

尝试.stop(true,true)

$('#drugiGumb').hover(function () {
    for (var i = 0; i < 60; i++) {
        $('#drugiGumbSlika').delay(15).animate({
            marginLeft: '-=149px'
        }, 1);
    }
    $('#drugiGumbSlika').animate({
        marginLeft: '-8791px'
    }, 1);
}, function () {
    $('#drugiGumbSlika').stop(true,true).animate({
        marginLeft: '0px'
    }, 1);
});

答案 1 :(得分:0)

您需要处理事件mouseenter和mouseleave。不要悬停。

答案 2 :(得分:0)

jQuery .stop() docs - http://api.jquery.com/stop/

$('#drugiGumb').hover(
function () {
    for (var i = 0; i < 60; i++) {
        $('#drugiGumbSlika').delay(15).animate({ marginLeft: '-=149px' }, 1);
    }
    $('#drugiGumbSlika').animate({ marginLeft: '-8791px' }, 1);
}, function () {
    $('#drugiGumbSlika').stop(true, true).animate({ marginLeft: '0px' }, 1);
}
);