селектор jQuery, чтобы проверить, анимирует ли элемент к скрытому

Существует ли способ сказать, скрыт ли элемент или или в настоящее время находится в процессе сокрытия (через анимацию)? Единственным путем я могу думать, чтобы сделать это, должен сохранить флаг в элементе data когда Вы звоните show или hide, но я задавался вопросом, было ли иначе?

7
задан nickf 12 May 2010 в 00:48
поделиться

2 ответа

Вы получаете скрытые с помощью $(":hidden"), а затем анимированные с помощью $(":animated") и с помощью :animated проверьте .queue(), если в нем есть метод hide.

1
ответ дан 7 December 2019 в 12:16
поделиться

Не могли бы вы создать для него собственный селектор 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. Теперь только будут соответствовать элементам, которые исчезают, а не появляются.

3
ответ дан 7 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: