하기의 예시 같이 이미지들을 슬라이드 쇼 처럼 다음을 누르면 넘어가는 기능을 구현 해보고자 한다. 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type = "text/css">

img {
width : 200px;
height : 200px;
}

</style>

<script>
//배열을 전역으로 하나 만들었음 
let arr = ["1.png","2.png","3.jpg","네이버.gif","sun.png"];

//cnt가 증가 할때마다 다음으로 가게 하려고 cnt 변수 선언 
let cnt = 0;

function a() {
	//document. 밑에있는 이미지이름이 img1 . 경로 
	document.img1.src= "../img/" + arr[cnt%5];
	//근데 계속 반복해 주려고 arr[cnt%5] 라고 해줬다. 
	//다음 누를때마다 1씩 증가 
	cnt++;
}

</script>
</head>

<body>

<img name = "img1" src = "../img/네이버.gif"> 
<input type = "button" value = "next" onclick = "a()">

</body>
</html>

 

 

그렇다면 쿠팡 같은 사이트 처럼 메인화면에 이미지들이 1~2초 간격으로 변경 되는 기능은 어떻게 해야 하는 걸까? 

 바로!  setTImeout을 사용해 주는 것이다. 

 

▶ setTimeout(코드를 담고 있는 함수, 지연시간) :

어떤 코드를 바로 실행하지 않고 일정 시간 기다린 후 실행하게 해주는 내장함수이다.  

첫번째 인자로 실행할 코드를 담고 있는 함수를 받고, 두번째 인자로 지연 시간을 밀리초(ms) 단위로 받는다. 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type = "text/css">

img {
width : 200px;
height : 200px;
}

</style>

<script>
//배열을 전역으로 하나 만들었음 
let arr = ["1.png","2.png","3.jpg","네이버.gif","sun.png"];

//cnt가 증가 할 때 마다 다음으로 가게 하려고 cnt 변수 선언 
let cnt = 0;

function a() {
	//이미지의 위치(경로)를 알려주었다. 
	document.img1.src= "../img/" + arr[cnt%5];
	//근데 계속 반복해 주려고 arr[cnt%5] 라고 해줬다.
	
	cnt++; //카운트 증가 
	
    setTimeout(a,1000);
	//setTimeout(함수명,딜레이) 마이크로세컨즈 딜레이 시간이 지난 후 함수를 호출 해준다. 
	//setTimeout은 반복 기능이 없다. 그래서 a함수 밖에 선언해주면 한번만 하고 끝난다. 
	//근데 지금 a 함수 안에 있으니까 여러번 호출 되서 그렇게 바뀌는 것 처럼 보이는 것임 	
}

window.onload = function(){
	a();
     //웹페이지를 켜자마자 실행 되야 함으로
    //onload 이벤트핸들러 실행 해주고 그 이벤트 핸들러는 함수를 받는데 
    //그 함수가 a() 인 것이다. 
}
</script>
</head>

<body>
<img name = "img1" src = "../img/네이버.gif">
</body>
</html>

 

 

해니01_15