35_Image Carousel
๐ป์ฃผ์ : next, prev ๋ฒํผ์ ํ์ฉํ ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋
let idx = 0 //ํ์ฌ ๋ณด์ฌ์ง๋ ์ด๋ฏธ์ง ์ธ๋ฑ์ค ๋ฒํธ
let interval = setInterval(run , 2000)
function run() {
idx++
changeImage()
}
function changeImage() {
//X์ถ์ผ๋ก 500px๋งํผ ์ด๋ํ์ฌ ์ ํ ํจ๊ณผ๋ฅผ ์ค
if(idx > img.length - 1) {
idx = 0
} else if(idx < 0) {
idx = img.length - 1
}
imgs.style.transform = `translateX(${-idx * 500}px)`
}
function resetInterval() {
`clearInterval(interval)
interval = setInterval(run, 2000)
}
leftBtn.addEventListener('click', () => {
idx--
changeImage()
})
rightBtn.addEventListener('click', () => {
idx++
changeImage()
resetInterval()
})
โreset์ ํ๋ ์ด์
์ด๋ฏธ์ง ์ฌ๋ผ์ด๋๋ ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ์ ํํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์๋ค. ์ด๋ฅผ ์ํด setInterval() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก run() ํจ์๋ฅผ ํธ์ถํ๊ณ ์๋ค. ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ํํ ๊ฒฝ์ฐ, ์๋ ์ ํ ๊ฐ๊ฒฉ์ ๋ค์ ์์ํด์ผ ํ๋ค. ์ด๋ resetInterval() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ interval์ ๋ฆฌ์
ํ๊ณ ๋ค์ ์์ํ๊ฒ ๋๋ค.