检查元素是否正在淡出 (Javascript/Jquery)
Check if an element is fading out (Javascript/Jquery)
有没有办法检查元素当前是否正在淡出?
类似这样的东西(伪代码):
while(element.isFadingOut()){
//do something
}
isFadingOut() 是我这里需要的。
它以某种方式存在吗?
您可以在实际淡出时添加触发器,如下所示:
$(element).fadeOut("normal", function () {
// your other code
$(this).trigger('isFadingOut');
});
并在其他地方收听此事件
$(element).on('myFadeOutEvent',function() {
// do something
});
将元素替换为您正在使用的任何元素。注意:如果您使用 JQuery
,这将起作用
如果您只想检查某些东西是否已经褪色,您只需检查 css opacity
值是否小于 1.0:
JSFiddle: http://jsfiddle.net/TrueBlueAussie/vkcpknLh/
这是作为 jQuery 扩展所需的代码:
$.fn.isFading = function(){
return this.css('opacity') < 1;
};
注意:淡入淡出是一个异步操作,所以在循环中检查永远不会起作用。您需要通过计时器等(根据我的 JSFiddle)对其进行轮询。
替代方法是使用 fadeOut
:
的完成事件
element.fadeOut(function() {
// do something on completion
});
或使用为jQuery动画提供的动画promise
:
element.fadeOut().promise().done(function(){
// do something on completion of all animations for this element
});
更新:
注意:如果元素已经处于最终状态,则某些动画事件不会触发 done
。在 promise
上使用 always()
代替:
element.fadeOut().promise().always(function(){
// do something on completion of all animations for this element
});
有没有办法检查元素当前是否正在淡出?
类似这样的东西(伪代码):
while(element.isFadingOut()){
//do something
}
isFadingOut() 是我这里需要的。 它以某种方式存在吗?
您可以在实际淡出时添加触发器,如下所示:
$(element).fadeOut("normal", function () {
// your other code
$(this).trigger('isFadingOut');
});
并在其他地方收听此事件
$(element).on('myFadeOutEvent',function() {
// do something
});
将元素替换为您正在使用的任何元素。注意:如果您使用 JQuery
,这将起作用如果您只想检查某些东西是否已经褪色,您只需检查 css opacity
值是否小于 1.0:
JSFiddle: http://jsfiddle.net/TrueBlueAussie/vkcpknLh/
这是作为 jQuery 扩展所需的代码:
$.fn.isFading = function(){
return this.css('opacity') < 1;
};
注意:淡入淡出是一个异步操作,所以在循环中检查永远不会起作用。您需要通过计时器等(根据我的 JSFiddle)对其进行轮询。
替代方法是使用 fadeOut
:
element.fadeOut(function() {
// do something on completion
});
或使用为jQuery动画提供的动画promise
:
element.fadeOut().promise().done(function(){
// do something on completion of all animations for this element
});
更新:
注意:如果元素已经处于最终状态,则某些动画事件不会触发 done
。在 promise
上使用 always()
代替:
element.fadeOut().promise().always(function(){
// do something on completion of all animations for this element
});