요소의 값이 변경되면 요소가 애니메이션을 적용하거나 감지하는지 감지하는 방법입니까?jQuery 애니메이션이 애니메이션을 감지합니까?
요소가 움직이는 경우 함수를 트리거해야하기 때문에. 아니 애니메이션의 onComplete. 선택된 요소는 애니메이션시
요소의 값이 변경되면 요소가 애니메이션을 적용하거나 감지하는지 감지하는 방법입니까?jQuery 애니메이션이 애니메이션을 감지합니까?
요소가 움직이는 경우 함수를 트리거해야하기 때문에. 아니 애니메이션의 onComplete. 선택된 요소는 애니메이션시
다음 true를 반환 :
var isAnimating = $("#someid").is(':animated');
더 상세 :
http://api.jquery.com/animated-selector/
및/또는
http://api.jquery.com/animate/
단계 : 함수 ~라고 불리는 애니메이션의 각 단계를 완료하십시오.
Andy 제발 pseudo-selector에 대한 제 이해를 명확히 할 수 있습니다 : 애니메이션. 내가 바라는 동작은 일단 요소가 애니메이션으로 시작되면 (: animated) 요소가 시작점으로 돌아 왔을 때라도 true입니다. 따라서 애니메이션이 애니메이션 위치에 도달했을 때이를 감지하는 단계를 사용하고 있습니다. 의사 선택기를 켜고 끌 수있는 방법이 있습니까? – codepuppy
@codepuppy 이상하다. http://jsfiddle.net/aPk3y/1/ 여기에서 테스트했다. 올바른 값을 반환한다. 나는 조작하기 쉬운 방법이 있다고 생각하지 않는다 : 직접 애니메이션. – Andy
Andy는이 예를 들어 주셔서 감사합니다. 좋아, 나는 그것이 당신을 위해 작동 볼 수 있습니다. 그러므로 어딘가에서 실수를 저 지르게 될 것입니다. 나는 돌아가서 나의 시험을 다시 검토 할 것이다. – codepuppy
간단한 방법은 애니메이션이 시작하자마자 true
으로 설정되는 전역 부울을 추가하는 것입니다. 그런 다음 애니메이션이 끝날 때 false
으로 설정하는 콜백 함수를 애니메이션에 추가합니다.
var running = false;
$('#start').click(function(){
running = true;
$('#target').animate({opacity: 0.5},'slow',function(){
running = false;
});
});
편집 : 오케스트라가 있습니다.
이 방법을 사용하는 경우 고유 한 상황에서는 경쟁 조건이 발생할 수 있으므로 사용 방법에주의하십시오. 예 :'1. 시작 버튼 (1) - running = true - t = 0ms''를 클릭하십시오. 시작 버튼 (2) - running = true - t = 200ms''를 클릭하십시오. 3. 애니메이션 (1) 종료 - 실행 = false - t = 600ms'' 4.애니메이션 (2) running - running = false - 600ms
가 작동하지 않는 것, 내가 볼 수있는 유일한 방법은 매우 간단하게 당신이 당신의 애니메이션을 실행할 때 호출 할 함수를 실행하는 것입니다요소가 움직이는 경우 함수를 트리거해야하기 때문에. 아니 애니메이션의 onComplete.
$(element).on(":animated", function(){ ... });
이후
$(selector).animate(. . .);
functionToCall(); //called with animate above
또 다른 해결책을, 당신은 애니메이션 시작을 처리하는 라이브러리를 만들 수도 있고 위에서 설명한 간단한 방식으로 애니메이션이 시작되면 필요한 함수를 호출하는 것도 처리 할 수 있습니다.
그래서 그냥 psuedocode :
var animation = new MyAnimationLibrary(function() { $(selector).animate(...) });
animation.onStart.push(function() {
alert('animation starts');
});
//then later in the code:
animation.start();
그런 다음 바로 위의 호출 배열 animation.onStart의 기능을하고 애니메이션을 트리거합니다.
언제 트리거합니까? –