좋아, 나는 두 개의 방향 버튼만으로 미리 불러 온 이미지의 다른 슬라이더를 만들려고했다. 내가 원했던 방식대로 애니메이션을 얻었고 컨트롤 아이디어는 튜토리얼에서 얻었습니다.jQuery 슬라이더 - setTimeout 크로스 브라우저 결함?
(자습서 : How to Make Auto-Advancing Slideshows는)
그래서, 내 요구에 autoadvance 솔루션을 적용하고 확인 작업 모두를 얻었다. 하지만 FF로 실행하려고했을 때 (8.0) 조금 문제가있었습니다. 버튼을 클릭하면 IE (8.0)에는 문제가없는 반면 (다른 브라우저에서는 테스트되지 않음) 애니메이션이 사전 설정된 3 초 시간 후에 계속되는 부분을 제외한 모든 작업이 수행됩니다.
내가 뭘 잘못하고 있니? 당신의 timeout
변수가 잘못된 범위에있는 것 같습니다, 언뜻
var traker=0;
$(document).ready(function(){
var numOfImages=4;
var timeOut = null;
(function autoAdvance(){
$('#fwd').trigger('click',[true]);
timeOut = setTimeout(autoAdvance,3000);
})();
function preload(imgIndex,numImages){
$("#imgholder1").css('background-image','url("'+imgIndex+'.jpg")');
$("#imgholder2").hide(0);
imgIndex < numImages ? imgIndex++ : imgIndex=1
$("#imgholder2").css('background-image','url("'+imgIndex+'.jpg")');
traker=imgIndex;
}
preload(1,numOfImages);
function animate(imgIndex,numImages){
$("#imgholder2").fadeIn("slow",function(){
preload(imgIndex,numImages);
});
}
$("#fwd").bind("click",function(e,simulated){
animate(traker,numOfImages);
if(!simulated){
clearTimeout(timeOut);
timeOut = setTimeout(autoAdvance,3000);
}
});
$("#bwd").bind("click",function(){
var temp=traker-2;
if(temp == 0){temp=numOfImages;}
if(temp == -1){temp=numOfImages-1;}
$("#imgholder2").css('background-image','url("'+temp+'.jpg")');
animate(temp,numOfImages);
clearTimeout(timeOut);
timeOut = setTimeout(autoAdvance,3000);
});
});
아무 제안도 작동하지 않습니다. 어쨌든 시도를위한 고맙습니다. 나는 또한 믹스를 피하기 위해 네임 스페이스를 사용하는 것이 더 어딘가를 읽었다. 슬프게도, 그 어떤 도움이 아니라 여기에서. –
자동 클릭을 감지하는 방법이 의심 스러울 수도 있습니다. 글로벌 플래그 (bAutoClick = true)를 설정하는 것과 같은 일을 할 때 다르게 처리했습니다. 당신은'시뮬레이션 된 '것을 설정하고 있습니다. - 어쩌면 그게 아닐까요? 'Click' 이벤트에서'simulated'를'false'로 다시 설정하십시오. 아마도 FF는 더 높은 범위를 제공 할 것입니다. –
동일합니다. 눈에 보이는 효과는 없습니다. –