복붙노트

[JQUERY] 요소가 애니메이션되고있는 경우 jQuery로 어떻게 알아 낼 수 있습니까?

JQUERY

요소가 애니메이션되고있는 경우 jQuery로 어떻게 알아 낼 수 있습니까?

해결법


  1. 1.

    if( $(elem).is(':animated') ) {...}
    

    추가 정보 : https://api.jquery.com/animated-selector/

    또는:

    $(elem)
        .css('overflow' ,'hidden')
        .animate({/*options*/}, function(){
            // Callback function
            $(this).css('overflow', 'auto');
        };
    

  2. 2.또는 무언가가 움직이지 않는지 테스트하려면 단순히 "!"를 추가 할 수 있습니다.

    또는 무언가가 움직이지 않는지 테스트하려면 단순히 "!"를 추가 할 수 있습니다.

    if (!$(element).is(':animated')) {...}
    

  3. 3.CSS 애니메이션을 사용하고 특정 클래스 이름을 사용하여 애니메이션을 할당하는 경우 다음과 같이 확인할 수 있습니다.

    CSS 애니메이션을 사용하고 특정 클래스 이름을 사용하여 애니메이션을 할당하는 경우 다음과 같이 확인할 수 있습니다.

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

    그러나 애니메이션이 완료된 후 클래스 이름을 제거하고있는 클래스 Namewhich가 애니메이션을 처리하는지 확인하십시오!

    이 코드는 애니메이션이 완료된 후 클래스 이름을 제거하는 데 사용할 수 있습니다.

    $("#elem").on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',
    function(){ 
            $(this).removeClass("your_animation_class_name");
    });
    

  4. 4.CSS를 애니메이션 요소에 적용하려면 다음을 사용하고 다음과 같이하십시오.

    CSS를 애니메이션 요소에 적용하려면 다음을 사용하고 다음과 같이하십시오.

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

    출처 : https://learn.jquery.com/using-jquery-core/selecting-elements/


  5. 5.

    $('selector').click(function() {
      if ($(':animated').length) {
        return false;
      }
    
      $("html, body").scrollTop(0);
    });
    
  6. from https://stackoverflow.com/questions/724911/how-do-i-find-out-with-jquery-if-an-element-is-being-animated by cc-by-sa and MIT license