[javascript] 파도 효과를 추가한 자바스크립트 슬라이더 구현 방법

이번 포스트에서는 자바스크립트를 사용하여 슬라이더에 파도 효과를 추가하는 방법을 알아보겠습니다.

필요한 요소들

  1. 자바스크립트
  2. HTML 마크업
  3. 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()를 정의합니다. 그리고 윈도우 사이즈가 변경될 때마다 파도 효과를 갱신하도록 이벤트 리스너를 추가합니다.

이제 슬라이더에 파도 효과가 추가된 모습을 확인할 수 있습니다.

포스트가 도움이 되었기를 바랍니다.

참고 자료


참고 자료: