탭/윈도우가 비활성 상태 일 때 재생을 중지하고 포커스가있을 때 계속 진행하는 전제 된 배경 슬라이더를 작성하려고합니다.크롬 및 사파리의 포커스 실행 중 함수
문제는 Chrome과 Safari가 모두 페이지로드/새로 고침에서 아무 것도하지 않는다는 것입니다. 즉, 애니메이션을 시작하려면 창을 클릭 한 다음 창 내부를 클릭해야합니다.
이 문제를 방지 할 수있는 방법이 있습니까? 이 두 브라우저에 대한 애니메이션을 시작하지만 난 창 바깥 쪽을 클릭하면 다시는 멈추지 않을 것입니다
$(window).load(function(){
var autopager;
function startAutopager() {
autopager = window.setInterval("slideSwitch()", 5000);
}
function stopAutopager() {
window.clearInterval(autopager);
}
window.addEventListener('focus', startAutopager);
window.addEventListener('blur', stopAutopager);
slideSwitch();
$("#sliderContent img").fullBg();
});
:
if(true == $.browser.safari || true == $.browser.chrome) {
startAutopager();
}
희망 누군가가 도움을 줄 수이 지금까지 내 코드입니다
.
건배!
jQuery의 이벤트 바인딩 방법을 사용하지 않는 이유가 있습니까? 또한, 나는 당신이 설명서에서 강력하게 권장하지 않는 setInterval을 사용하고있는 것으로 나타났습니다. [link] (http://api.jquery.com/animate/) "추가 참고 사항"을 참조하십시오. –
답변 해 주셔서 감사합니다! 나는 묶는 사건에 관해 몰랐다. 그러나 나는 그것을 볼 것이다. SetInterval은 아마도 낙심 할 수는 있지만 제 경우에는 문제가되지 않습니까? – Manticore
JS, focus/blur가 항상 제대로 호출되는 것은 아니라는 것을 알 것입니다. 포커스가 연속적으로 두 번 호출 될 수 있기 때문에 _ slideSwitch() 함수가 두 번 실행됩니다 : 원하는 것보다 많은 애니메이션을 "큐잉"합니다. 완벽한 연습은 다음을 사용하는 것입니다 : 'if (autopager) window.clearInterval (autopager);' 'autopager = window.setInterval ("slideSwitch()", ' –