Javascript fadeIn / fadeOut“堆叠”

时间:2014-01-04 22:55:14

标签: javascript jquery fadein fadeout

尝试以我想要的方式获得一个简单的fadeIn / fadeOut工作,基本上,我的问题是它不会覆盖或停止该函数,如果我已经在另一个触发该动作的元素上盘旋,并且它的类型将它放入队列中,即使我的鼠标不在元素附近,也会播放所有动画。我希望它不会让函数再次触发,除非淡出已经完成。

$("p").hover(
function() 
{
    $(document.getElementById('Bottom_Menu')).fadeIn(200);
},
function() 
{
    $(document.getElementById('Bottom_Menu')).fadeOut(350);
});

2 个答案:

答案 0 :(得分:2)

要快速回答您的问题,您可以使用stop()

$("#Bottom_Menu").stop().fadeTo(200, 1);

您不必使用document.getElementById;相反,只需使用#id。对于类,请使用.class。它全都内置于jQuery中。 :)

<强>更新

我现在使用的是fadeTo而不是fadeIn,因为fadeIn仅在显示为none时有效。因此,如果我们使用stop()取消上一个动画,我们需要使用fadeTo,因为显示可能不是无。 (当您使用fadeOut时,它会淡出元素,并在完成时将元素的显示设置为无,这会隐藏元素。)

备注:

fadeTo的第二个属性是不透明度。 与fadeTo一样,fadeIn仍会自动更改显示属性,以便元素可见。

答案 1 :(得分:1)

$("#Bottom_Menu").clearQueue();

清除要对此元素执行的所有待处理动画/操作