JQuery悬停stop()。fadeIn()问题

时间:2011-12-19 19:27:33

标签: html jquery

与fadeIn结合使用时,我遇到了停止功能的问题。

我的fadeIn设置为2000毫秒,我引入了stop(),因此动画不会建立。但问题是,当我使用stop(true,true)时,它会跳到动画的结尾。如果我只使用stop(),当多次悬停目标时效果不会100%有效。即。如果有两个具有此效果的div彼此相邻,并且我将光标快速移动到每个上,则悬停效果不会启动。

这是代码。

$('#menu li').hover(
//Mousein    
function() {
    $(this).children('div').stop(true, true).fadeIn(2000);
},

//Mouseout
function() {
    $(this).children('div').stop(true, true).fadeOut(2000);   

});

有没有办法让动画在没有跳到最后的情况下正常停止/启动?

2 个答案:

答案 0 :(得分:2)

您没有明确指出“100%无法正常工作”的含义。但是,如果您使用早于1.7的jQuery版本,则可能会看到此已知缺陷:

  

从jQuery 1.7开始,使用.stop()过早地停止切换动画将触发jQuery的内部效果跟踪。在以前的版本中,在切换动画完成之前调用.stop()方法会导致动画失去对其状态的跟踪(如果jumpToEnd为false)。任何后续动画都将从一个新的“中途”状态开始,有时会导致元素消失。

请参阅.stop() - jQuery API上的“切换动画”。

答案 1 :(得分:0)

这是我做的东西。不是真正的解决方案,只是一个对话启动器。只要鼠标位于窗口视口内,似乎工作正常。

http://jsfiddle.net/mcritz/AwzQ7/