在与fadeIn结合使用时,我遇到了stop函数的问题。
我的fadeIn设置为2000ms,我引入了stop(),这样动画就不会累积起来。然而,问题是当我使用stop(true,true)时,它会跳到动画的末尾。如果我只是使用stop(),当多次悬停目标时,效果并不是100%有效。即。如果有两个带有此效果的div相邻,并且我非常快地将光标移动到每个div上,悬停效果就不会启动。
下面是代码。
$('#menu li').hover(
//Mousein
function() {
$(this).children('div').stop(true, true).fadeIn(2000);
},
//Mouseout
function() {
$(this).children('div').stop(true, true).fadeOut(2000);
});
有没有一种方法可以让动画正常停止/开始而不跳到结尾?
发布于 2011-12-20 05:06:04
你没有确切地说明你所说的“不能100%工作”是什么意思。但是,如果您使用的是早于1.7的jQuery版本,您可能会看到以下已知缺陷:
从jQuery1.7开始,提前停止使用.stop()切换的动画将触发
的内部效果跟踪。在以前的版本中,在切换的动画完成之前调用.stop()方法会导致动画失去对其状态的跟踪(如果jumpToEnd为false)。任何后续动画都将从一个新的“中途”状态开始,有时会导致元素消失。
请参见.stop() - jQuery API上的“切换动画”。
发布于 2011-12-20 04:14:13
这是我做的。这并不是一个真正的解决方案,只是一个对话的开始。只要鼠标在窗口视口内,似乎就可以正常工作。
http://jsfiddle.net/mcritz/AwzQ7/
https://stackoverflow.com/questions/8566783
复制相似问题