JQuery mouseleave然后在mouseleave中设置的fadeOut持续时间内进行鼠标悬停

时间:2017-01-22 03:01:19

标签: jquery jquery-animate jquery-events

我似乎找不到解决这个问题的方法。发生的是当我触发mouseleave然后尝试在mouseleave持续时间内触发mouseover到fadeOut()时,mouseover不会触发。有没有办法解决这个问题,还是应该使用jquery动画功能?

$("#homepage-slider").on({
    mouseover: function() {
        $(".direction-next").fadeTo(500, .7);
        $(".direction-previous").fadeTo(500, .7);
    },
    mouseleave: function() {
        $(".direction-next").fadeOut(500);
        $(".direction-previous").fadeOut(500);
    }
});

1 个答案:

答案 0 :(得分:1)

在您的情况下,您需要stop动画,clear the queue然后jump to the end

你怎么能这样做?通过使用jQuery' .stop(true,true)

$("#homepage-slider").on({
    mouseover: function() {
        $(".direction-next").stop(true, true).fadeTo(500, .7);
        $(".direction-previous").stop(true, true).fadeTo(500, .7);
    },
    mouseleave: function() {
        $(".direction-next").fadeOut(500);
        $(".direction-previous").fadeOut(500);
    }
});

obligatory jsFiddle