jQuery 책을 읽고 예제를 작성하려고합니다. 이 예제에서는 번개가 화면에서 깜박이고 그 부분은 잘 동작합니다. 문제는 탭을 전환 한 다음 다시 전환하면 번개가 빠르게 연속해서 깜박이기 시작한다는 것입니다. 문제는 window.onblur 및 window.onfocus 이벤트를 사용하여 수정해야하지만 작동하지 않습니다. 아무도 내가 잘못하고있는 것을 볼 수 있습니까?Javascript/jQuery에서 ClearInterval을 사용할 수 없습니다.
아이디가 다른 숨겨진 번개 사진이 세 개 있으며, 각 사진이 깜박이는 세 가지 다른 기능이 있습니다. goLightning()은 각 함수의 간격을 설정하고 stopLightning()은 해당 간격을 지워야합니다. 그 부분은 제가 아는 모든 것에 효과가없는 것 같습니다. 코드는 다음과 같습니다.
$(document).ready(function(){
goLightning();
window.onblur = stopLightning;
window.onfocus = goLightning;
var int1; var int2; var int3;
// this function sets the lightning interval
function goLightning() {
int1 = setInterval(function() { lightning_one(); },4000);
int2 = setInterval(function() { lightning_two(); },5000);
int3 = setInterval(function() { lightning_three(); },7000);
}
// this function clears the lightning when the window isn't focused
function stopLightning() {
window.clearInterval(int1);
window.clearInterval(int2);
window.clearInterval(int3);
}
// these three functions make the lightning flash and seem to be working fine
function lightning_one() {
$("#container #lightning1").fadeIn(250).fadeOut(250);
}
function lightning_two() {
$("#container #lightning2").fadeIn(250).fadeOut(250);
}
function lightning_three() {
$("#container #lightning3").fadeIn(250).fadeOut(250);
}
});
이것이 작동하지 않는 이유는 알 수 없습니다. stopLightning()이 간격을 지우지 않았거나 window.onblur이 작동하지 않는 것 같습니다. 어쨌든, 어떤 피드백이 도움이 될 것입니다. 감사!
빠른 질문, 작동 여부를 확인하는 유일한 방법은 보이지 않는지 어떻게 테스트하나요? –
필자는 탭을 앞뒤로 움직여서 그것이 정상적으로 작동하는지 테스트했습니다. 내가 일반적으로하는 것처럼 경고를 사용하여 시도했지만 그들은 작동하지 않았다 :) –