2011-11-15 109 views
5

我有一个div,它将淡入/淡出悬停在页面上的另一个元素(并悬停在外)。麻烦的是,没有什么能够阻止用户真正快速地悬停并导致动画排队。Jquery,防止排队动画

这里是我的代码:

<div class="hovertest">test</div> 

<div class="test">test2</div> 

的Jquery:

$("div.hovertest").hover(
     function() { 
     $(".test").fadeOut(); 
     }, 
     function() { 
     $(".test").fadeIn(); 
}); 

CSS:

div { 
    width:200px; 
    height:100px; 
    background-color:#B22; 
} 

这里是一个链接到jsfidde:http://jsfiddle.net/btEXH/

回答

5

你想用个e stop函数并将clearQueue和jumpToEnd传递为true。

$("div.hovertest").hover(
    function() { 
    $(".test").stop(true, true).fadeOut(); 
    }, 
    function() { 
    $(".test").stop(true, true).fadeIn(); 
}); 

http://jsfiddle.net/infernalbadger/btEXH/1/

+0

是否可以淡入/输出从动画停在那里,而不是跳跃到终点,然后运行动画。 - 否则就完成了这项工作。谢谢! – Tom

+0

@Tom通过将第二个参数更改为false应该是可能的。虽然这似乎造成不透明问题 –

+0

是的,我试过了,并得到同样的问题。在这种情况下,它不应该导致问题,但如果动画较慢,它可能看起来有点奇怪。 – Tom