如何取消jQuery fadeOut()一旦开始?
我有一个基本的div元素来表示一个消息,我显示了几秒钟,然后淡出使用
$('#message').fadeOut(5000);
如果用户将鼠标hover在div上,我希望能够取消淡出。
一旦fadeOut方法开始淡入div,我怎样才能取消淡出?
我现有的代码,如下所示,如果鼠标在显示时进入div,但我需要允许用户在开始淡入淡出之后hover在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); });
另外,你可以使用:animated
selector来testing一个元素是否在animation的中间。
$('#message').mouseover( function () { if($(this).is(':animated')) { $(this).stop().animate({opacity:'100'}); } } );