티스토리 뷰
HTML
<div class="carousel">
<div class="carousel-wrapper">
<div class="carousel-item">
<img src="slide01.png" alt="">
</div>
<div class="carousel-item">
<img src="slide02.png" alt="">
</div>
<div class="carousel-item">
<img src="slide03.png" alt="">
</div>
</div>
</div>
CSS
.carousel {
max-width: 100%;
height: 200px;
overflow: hidden;
}
.carousel .carousel-wrapper {
width: 300px;
height: 200px;
display: flex;
flex-wrap: nowrap;
flex-direction: row;
}
.carousel .carousel-wrapper .carousel-item {
width: 100px;
height: 200px;
}
JS
const carouselContainer = document.querySelector('.carousel');
const carouselWrapper = document.querySelector('.carousel-wrapper');
let carouselItems = document.querySelectorAll('.carousel-item');
let itemWidth = carouselItems[0].offsetWidth;
const frameRate = 1000 / 60;
let margin = 0;
let timeline = setInterval(() => {
margin += 1
if (margin >= itemWidth) {
let firstItem = carouselItems[0].innerHTML;
carouselItems[0].parentNode.removeChild(carouselItems[0]);
carouselItems = document.querySelectorAll('.carousel-item');
margin = 0;
let elem = document.createElement('div');
elem.setAttribute('class', 'carousel-item');
elem.innerHTML = firstItem;
carouselWrapper.appendChild(elem);
}
carouselWrapper.setAttribute("style", `margin-left: -${margin}px`);
}, frameRate)
728x90
'개발 > javascript' 카테고리의 다른 글
[JS 스터디] 매개변수와 인수 (0) | 2022.11.16 |
---|---|
[JS 스터디] 랜덤 숫자 생성 - Math.random(); (0) | 2022.11.16 |
자바스크립트 실습 - Making a To Do List (0) | 2021.05.06 |
자바스크립트 실습 - Saving the User Name (0) | 2021.04.19 |
자바스크립트 실습 - Making a JS Clock (0) | 2021.04.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
250x250