如何在hover事件的jQuery动画中正确使用stop()?

我使用下面的方法制作一些动画。 但是当我快速移入和移出鼠标并将其停在divfadeIn()不起作用且div保持透明。

 $(".grids").hover(function() { $('.gridscontrol').stop().fadeIn(200); }, function() { $('.gridscontrol').stop().fadeOut(200); }); 

没有参数的.stop()只是停止动画,仍然将它留在队列中。 在这种情况下,您还需要.stop(true)来清除动画队列。

 $(".grids").hover(function() { $('.gridscontrol').stop(true).fadeTo(200, 1); }, function() { $('.gridscontrol').stop(true).fadeTo(200, 0); }); 

还要注意使用.fadeTo()因为.fadeIn().fadeOut()快捷方式在这里有一些不良行为。 你可以在这里看到一个有效的例子 。

.stop([clearQueue] [,jumpToEnd])

clearQueuejumpToEnd都设置为true

 $(".grids").hover(function() { $('.gridscontrol').stop(true, true).fadeIn(200); }, function() { $('.gridscontrol').stop(true, true).fadeOut(200); });