如果鼠标在完成第一个动画之前离开,则不会调用 mouseout,Hoverinternt

mouseout not called if mouse leave before completing first animation, Hoverinternt

我使用 hoverintent 创建了翻转动画和触发器,效果很好。 但是当鼠标在完成第一个动画之前离开时,它不会调用 handlerOut。 动画是在设置超时的情况下创建的,这就是问题所在。

有什么方法可以检查动画期间的鼠标移出吗?

function mouse_enter(){
    var Row = $(this);
    var flipCard = Row.find('.flip-card');

    flipCard.addClass('is-visible').removeClass("is-invisible").addClass('flip');


        setTimeout(function() {

            flipCard.addClass('unflip');
       }, 501);

        setTimeout(function() {

            flipCard.addClass('animated');
       }, 1002);
}

function mouse_out(){
    var Row = $(this);
    var flipCard = Row.find('.flip-card');






    if (flipCard.hasClass('animated')) {


        flipCard.removeClass('unflip');

        setTimeout(function() {
                    flipCard.addClass('flip360');
               }, 501);


            setTimeout(function() {
                    flipCard.removeClass('animated').removeClass('is-visible').addClass('is-invisible')
               }, 1000);

            setTimeout(function() {
                    flipCard.parents('.grid-s-0').find(':visible').removeClass('flip360').removeClass('flip');
               }, 1003);

};

}


function imageFlip () {

    $(".grid-s-0").hoverIntent( mouse_enter, mouse_out ); 
}

imageFlip();

解决了我在上面代码的mouse_enter函数中添加jquery mouseout。如果鼠标离开而没有完成第一个动画,这将触发并应用所需的 类.

$( Row ) .on('mouseleave', function() {

if (!flipCard.hasClass('animated')) { 
    flipCard.removeClass('unflip');
    flipCard.removeClass('flip').removeClass('animated').removeClass('is-visible').addClass('is-invisible');

}