jQuery mouseenter和mouseleave fade用于防止延迟重复

时间:2015-06-07 09:27:21

标签: javascript jquery mouseenter mouseleave fadeto

所以,我有一个div,鼠标在鼠标左右上下移动,效果很好。

$('.myDiv').mouseenter(function(){
$(this).fadeTo('slow', 1);
});

$('.myDiv').mouseleave(function(){
$(this).fadeTo('slow', 0.4);
});

jsfiddle

但是,如果您快速移动鼠标一次又一次地移动几次,则当动画继续运行时,div将“闪烁”。有没有办法阻止这种情况发生?

我尝试过回调但没有取得预期的效果。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

尝试:

$('.myDiv').mouseenter(function(){
    $(this).stop();
    $(this).fadeTo('slow', 1);

});
$('.myDiv').mouseleave(function(){
    $(this).stop();
    $(this).fadeTo('slow', 0.4);
});

https://jsfiddle.net/1Lrcubwp/

答案 1 :(得分:2)

更好的方法是使用CSS。 Javascript不应该用于这种动画,因为它会使你的网站变慢。 请参阅下面的示例。



xml

<GridView
&#13;
&#13;
&#13;