我已经使用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();
答案 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');
}