尝试以我想要的方式获得一个简单的fadeIn / fadeOut工作,基本上,我的问题是它不会覆盖或停止该函数,如果我已经在另一个触发该动作的元素上盘旋,并且它的类型将它放入队列中,即使我的鼠标不在元素附近,也会播放所有动画。我希望它不会让函数再次触发,除非淡出已经完成。
$("p").hover(
function()
{
$(document.getElementById('Bottom_Menu')).fadeIn(200);
},
function()
{
$(document.getElementById('Bottom_Menu')).fadeOut(350);
});
答案 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();
清除要对此元素执行的所有待处理动画/操作