我有一个基本的div元素来表示我显示几秒钟然后使用
淡出的消息$('#message').fadeOut(5000);
如果用户将鼠标悬停在div上,我希望能够取消淡出。
一旦fadeOut方法开始淡化div,如何取消淡出?
我现有的代码,如果鼠标在显示时进入div,但是如果用户在div开始淡入时悬停在div上,我需要允许这样做。
$('#message').mouseenter(function() {
clearTimeout(this.timeout);
});
$('#message').mouseleave(function() {
this.timeout = setTimeout("$('#message').fadeOut(5000)", 3000);
});
$('#message').fadeIn(2000, function() {
this.timeout = setTimeout("$('#message').fadeOut(3000)", 3000);
});
答案 0 :(得分:46)
答案 1 :(得分:23)
此外,您可以使用:animated
选择器测试元素是否在动画中间:
$('#message').mouseover(
function () {
if($(this).is(':animated')) {
$(this).stop().animate({opacity:'100'});
}
}
);
答案 2 :(得分:0)
在我的情况下,python script.py my_dir/*.txt
至少在Firefox中不起作用,搜索后我发现应该为stop()
:
stop(true, true)
stop():在匹配的元素上停止当前正在运行的动画。
或者甚至可以改用$('#message').mouseover(
function () {
$(this).stop(true, true).fadeOut();
}
);
:
finish()
但是对于finish()有副作用,它也会停止所有其他正在运行的动画。
finish():停止当前正在运行的动画,删除所有排队的动画,并为匹配的元素完成所有动画。
了解更多here。