[javascript] 파도 효과를 추가한 자바스크립트 슬라이더 구현 방법
이번 포스트에서는 자바스크립트를 사용하여 슬라이더에 파도 효과를 추가하는 방법을 알아보겠습니다.
필요한 요소들
- 자바스크립트
- HTML 마크업
- CSS 스타일
HTML 마크업 작성하기
먼저, HTML 마크업을 작성해야 합니다. 슬라이더를 감싸는 div 요소를 생성하고, 그 안에 슬라이드 이미지들을 감싸는 div 요소들을 추가합니다. 아래는 예시입니다.
<div id="slider">
<div class="slides">
<img src="slide1.jpg" alt="Slide 1">
<img src="slide2.jpg" alt="Slide 2">
</div>
</div>
CSS 스타일 추가하기
슬라이더에 파도 효과를 주기 위해 CSS 스타일을 추가해야 합니다. 아래는 예시입니다.
#slider {
width: 500px;
height: 300px;
overflow: hidden;
position: relative;
}
.slides {
display: flex;
animation: wave 5s infinite;
}
.slides img {
width: 100%;
height: auto;
}
@keyframes wave {
0% {
transform: translateX(0);
}
25% {
transform: translateX(-100%);
}
50% {
transform: translateX(-200%);
}
75% {
transform: translateX(-100%);
}
100% {
transform: translateX(0);
}
}
자바스크립트 구현하기
마지막으로, 자바스크립트를 사용하여 슬라이더의 파도 효과를 구현해야 합니다. 아래는 예시입니다.
// 슬라이드 이미지들을 감싸는 div 요소를 저장합니다.
const slidesWrapper = document.querySelector('.slides');
// 슬라이드 이미지들의 너비를 계산합니다.
const slideWidth = slidesWrapper.clientWidth;
// 파도 효과를 추가하는 함수를 정의합니다.
function addWaveEffect() {
slidesWrapper.style.animationDuration = `${slideWidth / 100}px`;
}
// 윈도우의 크기가 변경될 때마다 파도 효과를 갱신합니다.
window.addEventListener('resize', addWaveEffect);
// 초기에 파도 효과를 적용합니다.
addWaveEffect();
위의 자바스크립트 코드는 슬라이드 이미지들을 감싸는 div 요소의 너비를 계산하고, 파도 효과를 추가하는 함수인 addWaveEffect()
를 정의합니다. 그리고 윈도우 사이즈가 변경될 때마다 파도 효과를 갱신하도록 이벤트 리스너를 추가합니다.
이제 슬라이더에 파도 효과가 추가된 모습을 확인할 수 있습니다.
포스트가 도움이 되었기를 바랍니다.
참고 자료
참고 자료: