Javascript Jquery在鼠标悬停时停止动画

Javascript Jquery在鼠标悬停时停止动画,javascript,jquery,Javascript,Jquery,从中提取的JQuery应该会给出一个不错的老式twitter风格的通知 如何编辑下面的代码以阻止div隐藏在鼠标上 更新:我仍然希望在鼠标悬停完成后div滑动。 $(function () { var $alert = $('#alert'); if($alert.length) { var alerttimer = window.setTimeout(function () { $alert.trigger('click');

从中提取的JQuery应该会给出一个不错的老式twitter风格的通知

如何编辑下面的代码以阻止div隐藏在鼠标上

更新:我仍然希望在鼠标悬停完成后div滑动。

$(function () {
    var $alert = $('#alert');
    if($alert.length) {
        var alerttimer = window.setTimeout(function () {
            $alert.trigger('click');
        }, 5000);       
        $alert.animate({height: $alert.css('line-height') || '50px'}, 200).click(function () {
            window.clearTimeout(alerttimer);
            $alert.animate({height: '0'}, 200);
        });
    }
});

如果我理解正确(我可能没有理解),您需要这样的东西:

var alerttimer, alertBox = $('#alert');
function resetTimeout() {
        if (alerttimer) {
                clearTimeout(alerttimer);
        }
        alerttimer = setTimeout(function() {
                alertBox.trigger('click');
        }, 5000);
}
$(function () {
        if(alertBox.length) {
                resetTimeout();
                alertBox.animate({ height: alertBox.css('line-height') || '50px' }, 200).click(function () {
                        window.clearTimeout(alerttimer);
                        alertBox.animate({ height: '0px' }, 200);
                }).mouseover(function () {
                        clearTimeout(alerttimer);
                }).mouseout(function () {
                        resetTimeout();
                });
        }
});

重要的是要注意,上面的内容还没有经过测试。

我假设您在mouseover事件中对元素尝试了
.stop()
?假设没有,我尝试了一些东西,但没有停止。
。stop()
停止给定元素上的所有动画,所以即使是隐藏动画的一半(顺便问一下,为什么不使用
slideUp()
?)它会死掉。这就是你想要的吗?与其永远冻结所有东西,不如重置5秒计时器。看我的答案,我想这就是你要找的。对不起,你有错误吗?可能是非常明显的事情,现在很累。如果你在上面悬停,没有错误只是不能阻止动画上升。不是的接下来,它会在你鼠标悬停后将计时器重置为5秒。我想我现在完全得到了你想要的,当你鼠标悬停时,它不应该隐藏,然后当你再次鼠标悬停时,它会将超时重置为5秒?只是更新了我的答案,看看是否有效!宾果!谢谢你的耐心!