Как узнать, что эффект работает на элементе? [dубликат]

Я пытаюсь переместить некоторые элементы на странице, и во время анимации я хочу, чтобы «overflow: hidden» применялся к элементу, и «переполнение» возвращалось к «авто» после того, как анимация

Я знаю, что jQuery имеет функцию утилиты, которая определяет, анимируется ли какой-либо элемент, но я не могу найти его где-либо в документах

97
задан 7 April 2009 в 15:03

4 ответа

В качестве альтернативы, чтобы проверить, не что-то не анимированное, вы можете просто добавить «!»:

if (!$(element).is(':animated')) {...}
5
ответ дан 15 August 2018 в 16:48
  • 1
    Это очень неправда ... Противоположность jquery «is» не «нет». 'not' удаляет фильтрованные элементы из объекта jquery. Если вы хотите проверить не анимированный объект, вы делаете if (!$(element).is(':animated')) {...} – amosmos 22 July 2015 в 15:16
  • 2
    @amosmos Ответ был отредактирован и одобрен сообществом. Я вернул его туда, где он был прав. – Bill 24 August 2015 в 14:08
  • 3
    Отлично, только теперь это дубликат принятого ответа. Кстати, что означает одобрение сообщества? – amosmos 25 August 2015 в 19:40
  • 4
    @amosmos остановить троллинг – Eric Cicero 11 May 2017 в 19:25
[F1]
0
ответ дан 15 August 2018 в 16:48
  • 1
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему оно решает проблему, улучшит долгосрочную ценность ответа. Пожалуйста, прочтите это как ответить за предоставление качественного ответа. – thewaywewere 26 June 2017 в 10:19

, если вы используете анимацию css и назначаете анимацию с помощью специального class name, вы можете проверить это следующим образом:

if($("#elem").hasClass("your_animation_class_name")) {}

Но убедитесь, что вы удаляете класс, который обрабатывает анимацию после завершения анимации!

Этот код можно использовать для удаления class name после завершения анимации:

$("#elem").on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',
function(){ 
        $(this).removeClass("your_animation_class_name");
});
-1
ответ дан 15 August 2018 в 16:48

Если вы хотите применить css к анимированным элементам, вы можете использовать псевдоселектор :animated и сделать это следующим образом:

$("selector").css('overflow','hidden');
$("selector:animated").css('overflow','auto');

source: https://learn.jquery.com/ используя-JQuery-ядро / выбор-элементы /

0
ответ дан 15 August 2018 в 16:48

Другие вопросы по тегам:

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