animate()에 대한 문서는 명시 적으로 언급 :
을 때문에 requestAnimationFrame()의 특성, 당신이 setInterval
또는 setTimeout
루프를 사용하여 결코 큐 애니메이션을해야한다. 에 CPU 리소스를 유지하려면 requestAnimationFrame
을 지원하는 브라우저는 창/탭이 표시되지 않은 경우 애니메이션을 업데이트하지 않습니다. setInterval
또는 setTimeout
을 통해 애니메이션 대기열을 계속 입력하는 경우 애니메이션이 일시 중지 된 경우 대기열에있는 모든 애니메이션은 창/탭이 포커스를 다시받을 때 재생을 시작합니다. 이러한 잠재적 인 문제를 방지하려면 루프에서 마지막 애니메이션의 콜백을 사용하거나 요소에 함수를 추가하여 다음 애니메이션을 시작하도록 제한 시간을 설정하십시오.
그래서, 당신은 animate()
에 호출 사이에 setTimeout()
에 체인 애니메이션 다음 사이클의 콜백에서 setTimeout()
, 가능한 경우, 또는 queue()
호출을 호출 할 수 있습니다.
편집 : 의견에서 요청한대로 여기에 간단한 queue()
예가 나와 있습니다.
$("selector").slideUp("slow").queue(function(next) {
window.setTimeout(next, 2000);
}).slideDown("slow");
http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser 참조 : 아래의 코드 슬라이드 애니메이션과 2 초 후에 적용 -window-is-not-currently-active 그냥 집중하지 않을 때 잠시 멈추고 다시 초점 맞추기 :) –