2017-10-14 8 views
0

div를 만들고 있는데 setInterval 함수를 사용하여 매 10 초마다 텍스트가 변경됩니다. 매우 잘 작동하고 있지만 5-6 분 후에 텍스트가 밀리 초 단위로 변경되기 시작하여 깜박이는 것처럼 보입니다.setInterval 자바 스크립트에서 몇 분 후에 텍스트가 깜박이기 시작했습니다

내 코드는 다음과 같습니다

var wordArray = ["TEXT1","TEXT2","TEXT3"]; 

function typingEffect() { 
    var rand = Math.floor(Math.random()*3); 
    $("#big-bob h5").text(wordArray[rand]); 
    $("#big-bob h5").addClass("animate"); 
    setInterval(typingEffect,10000); 
} 

typingEffect(); 
+1

이것은 새로운 setInterval이 funct 이온이 불린다. clearInterterval을 사용하거나 setInterval을 setTimeout으로 변경하십시오. 차이점을 확인하십시오 : https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Timers – jeff

답변

3

당신은 당신이 typingEffect() 기능을 실행 새로운 간격마다를 만드는 ...

var wordArray = ["TEXT1","TEXT2","TEXT3"]; 

function typingEffect() { 
    var rand = Math.floor(Math.random()*3); 
    $("#big-bob h5").text(wordArray[rand]).addClass("animate"); 
} 

setInterval(typingEffect,10000); 
typingEffect(); // This last line is only needed if you want to execute the function 
       // when page loads (otherwise, first execution will be after the 
       // first 10 seconds) 

이 방법으로 작업을 수행하려면 setTimeout()를 사용해야합니다. ..

var wordArray = ["TEXT1","TEXT2","TEXT3"]; 

function typingEffect() { 
    var rand = Math.floor(Math.random()*3); 
    $("#big-bob h5").text(wordArray[rand]).addClass("animate"); 
    setTimeout(typingEffect,10000); 
} 

typingEffect(); 
+0

안녕하세요 A. Lglesias 고맙습니다. 이것은 아주 잘 작동하고 있습니다. 하지만 좀 더 많은 정보가 필요해. 이 기능의 타이밍은 10 초이며 애니메이션 (CSS)에서도 10 초이지만 둘 다 서로 일치하지 않습니다. – VikashSDNT

+0

그렇습니다. 타이머는 CPU 부하 등에 따라 지연 될 수 있습니다 (모든 응용 프로그램과 마찬가지로 웹 브라우저는 CPU 시간 동안 회전하며 대기 시간은로드에 따라 다릅니다). css 애니메이션이 다음'setInterval' 반복이 도착하기 전에 완료하는 데 충분한 시간을 가지도록하려면,'setTimeout' 간격 지속 시간을 css 애니메이션보다 크게 설정해야합니다. 아마도 1 초의 차이만으로 충분할 수 있지만 필요에 맞게 다른 값을 시도하십시오. –

+0

안녕 A. Lglesias, 다시 한 번 감사드립니다. 이제 문제가 다시 생겼어. 사실 난 임의의 문자열 싶지 않아요. 배열 wordArray를 통해 단계별 문자열을 원합니다. 도와주세요, 제발. – VikashSDNT