Jquery停止淡入淡出效果

时间:2011-09-21 08:13:02

标签: jquery

http://jsfiddle.net/sJFLq/1/

当你向上或向下悬停div时,我想要的是一种鼠标效果。但是,如果你将鼠标悬停几次然后停止,那么效果会不断重复。

我该如何解决这个问题?我认为我需要某种类似于animate选项的排队,但是对于fadeTo函数。有任何想法吗?

3 个答案:

答案 0 :(得分:5)

您可以使用.stop方法停止以前的动画。如果您传入true作为参数,它也会清除排队的动画。

如果我已经理解了你正在寻找什么,那么你想要的就是这个(你说你想要一个“鼠标踪迹”,我认为这意味着你不希望以前的动画停止只要鼠标离开该元素,因此只有一次调用.stop):

$(".test").mouseover(function(e){
    $(this).stop(true).fadeTo(200,1);
}).mouseout(function(e){
    $(this).fadeTo(200,0.3);
});

您可以看到正在运行here

答案 1 :(得分:4)

正如你在标题中描述的那样:)

$(".test").mouseover(function(e){
    $(this).stop().fadeTo(200,1);
}).mouseout(function(e){
    $(this).stop().fadeTo(200,0.3);
});

答案 2 :(得分:2)

添加.stop()以终止您之前的动画:http://jsfiddle.net/sJFLq/5/

$(".test").mouseover(function(e){
    $(this).stop(true, true).fadeTo(200,1);
}).mouseout(function(e){
    $(this).stop(true, true).fadeTo(200,0.3);
});