Как узнать с помощью jQuery, анимируется ли элемент? - PullRequest
97 голосов
/ 07 апреля 2009

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

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

Ответы [ 5 ]

194 голосов
/ 07 апреля 2009
if( $(elem).is(':animated') ) {...}

Подробнее : http://docs.jquery.com/Selectors/animated


Или:

$(elem)
    .css('overflow' ,'hidden')
    .animate({/*options*/}, function(){
        // Callback function
        $(this).css('overflow', 'auto');
    };
5 голосов
/ 15 января 2014

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

if (!$(element).is(':animated')) {...}
0 голосов
/ 26 июня 2017
$('selector').click(function() {
  if ($(':animated').length) {
    return false;
  }

  $("html, body").scrollTop(0);
});
0 голосов
/ 25 августа 2016

Если вы хотите применить CSS к анимированным элементам, вы можете использовать псевдо-селектор :animated и сделать это так,

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

источник: https://learn.jquery.com/using-jquery-core/selecting-elements/

0 голосов
/ 23 июня 2015

если вы используете 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");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...