Jquery – 翻转时fadeIn / fadeOut闪烁

我正在使用以下代码来实现对其父div的翻转/转出的fadeIn / fadeOut效果。

$('.rollover-section').hover(function(){ $('.target', this).stop().fadeIn(250) }, function() { $('.target', this).stop().fadeOut(250) }) 

当我翻转div并慢慢退出时,它可以正常工作。 但是,如果我将鼠标快速移动然后快速离开div,则会破坏效果。 目标div似乎陷入0和1之间的不透明度。

令我困惑的是,当我使用以下代码时,它完美地运行。

 $('.rollover-section').hover(function(){ $('.target', this).stop().animate({ opacity: 1 }, 250); }, function() { $('.target', this).stop().animate({ opacity:0 }, 250); }) 

所以,我有两个问题。

1 – 为什么我的第一个代码块表现如此?

2 – fadeIn()/ fadeOut()和不透明度动画有什么区别?

我从这里的评论中得到了答案:

只需使用您在那里的动画示例。 在这里查看淡入淡出动画为何如此表现的答案: jQuery淡出闪烁

正如已经说明的那样,因为那些修改了css并将显示更改为none。 通过使用fadeTo你可以获得相同的效果,但它不会修改css,所以它应该正常工作。

更新示例: http : //jsfiddle.net/TFhzE/1/

你也可以

 $('.rollover-section').hover(function() { $('.target', this).stop().fadeTo(0,250); }, function() { $('.target', this).stop().fadeTo(250,0,function(){$(this).hide();}); }); 

一旦实际完成就完全隐藏它。