6

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

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

2 回答 2

16

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

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

还要注意使用.fadeTo()因为.fadeIn().fadeOut()快捷方式在这里有一些不良行为。 您可以在此处查看一个工作示例

于 2013-01-31T01:08:22.363 回答
2

.stop( [clearQueue ] [, jumpToEnd ] )

clearQueue和都设置jumpToEndtrue

$(".grids").hover(function() {
    $('.gridscontrol').stop(true, true).fadeIn(200);
}, function() {
    $('.gridscontrol').stop(true, true).fadeOut(200);
});
于 2013-01-31T01:08:38.320 回答