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

时间:2016-03-29 20:41:58

标签: jquery css-animations hoverintent

我已经使用hoverintent工作正常创建了一个翻转动画和触发器。 但是当鼠标在完成第一个动画之前离开时,它不会调用handlerOut。 使用set timeout创建动画,这就是问题所在。

有什么方法可以在动画中检查鼠标输出。?

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();

1 个答案:

答案 0 :(得分:0)

我在上面的代码中解决了在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');

}