繁体   English   中英

jQuery选择器,用于检查元素是否为隐藏动画

[英]jQuery selector to check if an element is animating to hidden

有没有办法判断元素是隐藏还是当前正在隐藏(通过动画)? 我能想到的唯一方法是在调用showhide时在元素的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM