자바스크립트에서 딜레이를 주고 싶습니다.
본문
<script>
// test1
console.log('A ');
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
console.log('B ');
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
console.log('C ');
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
</script>
<script>
//test2
document.getElementById("B1").innerHTML="<img src='img/"+B1+".png'>";
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
document.getElementById("B2").innerHTML="<img src='img/"+B2+".png'>";
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
document.getElementById("B3").innerHTML="<img src='img/"+B3+".png'>";
loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
</script>
위 test1 처럼 하면 2초마다 A B C 동작이 잘됩니다.
그래서 실제 적용하려고 test2 처럼 해보니
6초 있다가 한꺼번에 그림이 나와버리네요...
하나씩 시간을 줘가며 그림을 보여주고 싶은데 어떻게 해야할까요
!-->!-->
답변 6
javascript settimeout 를 한번 검색해보시면 될거 같습니다.
<script>
<script>
//test2
document.getElementById("B1").innerHTML="<img src='img/"+B1+".png'>";
//loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
setTimeout(function(){}, 2000); // 2초간 딜레이
document.getElementById("B2").innerHTML="<img src='img/"+B2+".png'>";
//loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
setTimeout(function(){}, 2000); // 2초간 딜레이
document.getElementById("B3").innerHTML="<img src='img/"+B3+".png'>";
//loopTime = Date.now() + 2000; while (Date.now() < loopTime) {} // 딜레이
setTimeout(function(){}, 2000); // 2초간 딜레이
</script>
위에소스 참고 하시면 될꺼 같습니다.
!-->간단히 다음처럼 하면 됩니다
<style>
#B1, #B2, #B3{display:none;}
</style>
<div id='B1'><img src=~~~~></div>
<div id='B2'><img src=~~~~></div>
<div id='B3'><img src=~~~~></div>
<script>
$(function(){
setTimeout(function(){ $("#B1").show(); }, 2000);
setTimeout(function(){ $("#B2").show(); }, 4000);
setTimeout(function(){ $("#B3").show(); }, 6000);
});
</script>
본문대로 하면 2초마다 innerHTML에 내용이 들어가는건 맞는데
2초동안 계속 반복문 돌리다가 끝나면 다시 2초동안 반복문 돌리고.. 하는 식이라
내용은 2초마다 들어가지만 총 6초짜리 반복문이 다 끝나고나서 화면에 한번에 표시되는거라 그러는거구요
document.getElementById("B1").innerHTML="<img src='img/"+B1+".png'>";
setTimeout(function(){
document.getElementById("B2").innerHTML="<img src='img/"+B2+".png'>";
}, 2000);
setTimeout(function(){
document.getElementById("B3").innerHTML="<img src='img/"+B3+".png'>";
}, 4000);
이렇게 하세요
https://www.delftstack.com/ko/howto/javascript/javascript-wait-for-x-seconds/
여기서 참고해서 해결했습니다.
답변주신분들 너무 감사합니다.