나는 내 사이트의 배너로 '슬라이드 쇼'를하기 위해 setTimeout()을 사용하는 사이트에서 일하고 있습니다. 모든 것이 잘 작동하고 지연 시간을 10 초로 설정했습니다. 이 문제는 창/탭을 전환하고 다른 작업을 수행 할 때만 발생합니다. 내가 돌아 왔을 때,이 기능은 내가 따라 잡기 위해 내가 번갈아 가며 돌린다. 문제는 내 화면이 반복적으로 깜박 거리고 모든 배너가 희미 해져서 사라지는 현상입니다.setTimeout()에는 해당 창에 포커스가 있지 않을 때 문제가 있습니까?
솔루션에 대한 아이디어가 있습니까? Google 크롬에서이 사실을 발견했습니다. 또한 Firefox에서 발생하는 것으로 알고 있습니다. IE에 대한 확신이 없습니다.
편집 여기
내가 다루고있어 조각입니다. 슬프게도 매우 큰 스크립트의 일부이며 매우 복잡한 HTML 파일에 연결되어 있습니다.
나는 당신이 여기 적어도 무슨 일이 일어나고 있는지의 아이디어를 얻을 수 있기를 바랍니다 : 나는 애니메이션과 색상을 변색의 색상 플러그인 jQuery를 사용하고
var lval=0;
var nval=1;
setHead = function(data) {
lval=nval;
var index=1;
$.each(data, function(name,value) {
if (Math.floor(Math.random()*index+2)==index+1) {
nval=index;
}
if (index==lval) {
$('.headmaster').find('img').fadeOut('fast');
//$('.headmaster').css('background-color',value.backgroundcolor);
$('.headmaster').find('a').attr('href',value.url);
$('.headmaster').animate({backgroundColor:value.backgroundcolor},'slow',function() {
$('.headmaster').find('img').attr('src',value.img);
$('.headmaster').find('img').fadeIn('slow');
});
}
index++;
});
setTimeout(function() { setHead(data); },10000);
}
arrayGet = function(arr,idx) {
$.each(arr, function(i,v) {
if (i==idx) {
return v
}
});
return null
}
$(document).ready(function() {
$.getJSON('json/intros.json', setHead);
});
.
당신은 settimeout 함수에 몇개의 호출이 일어나고 있는지 확인하기 위해 방화 녀를 확인 했습니까? 정상적인 상황과 탭/창을 변경 한 후이를 확인하십시오. 함수 호출에 이상이 있는지 확인하십시오. – AdrianoRR
@AdrianoRR 나는 이미 확신했다. 탭이 되돌아 오자 마자 함수는'timegone/timeoutlength' 번 호출됩니다. – FreeSnow
자, 코드를 사용한 스 니펫이나 함수를 사용한 예제를 제공해 주시겠습니까? 문제를 쉽게 식별 할 수 있습니다. – AdrianoRR