
[英]Check if element is hidden by overflow:hidden JQuery/JavaScript
[英]jQuery selector to check if an element is animating to hidden
有没有办法判断元素是隐藏还是当前正在隐藏(通过动画)? 我能想到的唯一方法是在调用show
或hide
时在元素的data
存储一个标志,但我想知道是否还有另一种方法?
你能为它做一个自定义的jQuery选择器吗?
(function($) {
var endOpacity,
oldStep = jQuery.fx.step.opacity;
$.fx.step.opacity = function( fx ) {
endOpacity = fx.end;
return oldStep(fx);
};
$.expr[':'].hiding = function(obj){
var $this = $(obj);
return ($this.is(':hidden') || ($this.is(':animated') && endOpacity === 0));
};
})(jQuery);
这对我有用 (虽然可能需要更多测试)。
所以只需添加:hiding
它将匹配隐藏的元素,以及当前动画为0的元素。它现在只匹配正在消失但不显示的元素。
您可以检查元素是否像这样动画:
if( !$('.your-element').is(':animated') ) {
// do animation...
} else {
return false;
}
你得到隐藏的一个用$(":hidden")
,然后用$(":animated")
然后用:animated
检查.queue()
如果里面有hide
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.