有人可以解释为什么这不起作用吗?
jQuery('.right-et-tooltip').delay(800).mouseout(function(){
jQuery(this).find('.right-et-tooltip-box').animate({ opacity: 'hide', left: '-100px' }, 30);
});
我毫不拖延。只要鼠标一出,BOOM就会消失。
谢谢,我尝试了一些事情,所以感到沮丧。
答案 0 :(得分:1)
你的延迟绝对没有,因为它绑定到jQuery选择器而不是mouseout
处理程序中的函数。
试试这个......
jQuery('.right-et-tooltip').mouseout(function(){
jQuery(this).find('.right-et-tooltip-box').delay(800).animate({ opacity: 'hide', left: '-100px' }, 30);
});
你的jsFiddle应用了更正...
编辑(旁注):
使用mouseenter
& mouseleave
方法,而不是mouseover
& mouseout
方法,在鼠标悬停期间往往会导致快速闪烁效果。
在这里用.hover()
方法插入同样的两个函数......
编辑2:
在离开动画完成之前重新进入时,动画将排队。如果你输入&几次离开真的很快,你会让所有动画在停止之前闪烁。
要阻止动画队列堆叠并创建一个新问题,因为mouseleave
延迟会导致/ {关闭mouseenter
函数jQuery(this).find('.right-et-tooltip-box').stop(true,false).animate({ opacity: 'show', left: '-100px' }, 30);
mouseenter
在mouseleave
后,它会立即停止任何true
动画。 “clearQueue”选项上的false
清除动画队列,“jumpToEnd”选项上的{{1}}表示停止当前动画而不是立即完成动画。
修改演示......