[javascript] 파도 효과를 가진 자바스크립트 UI 컴포넌트 구현하기

파도 효과를 가진 UI 컴포넌트는 웹사이트나 앱에서 매력적인 시각적 효과를 제공할 수 있습니다. 이번 블로그에서는 자바스크립트를 사용하여 파도 효과를 가진 UI 컴포넌트를 구현하는 방법을 알아보겠습니다.

1. HTML 구조 작성하기

파도 효과를 가진 UI 컴포넌트를 만들기 위해 먼저 HTML 구조를 작성해야 합니다. 예를 들어, 파도 효과를 가진 버튼을 만든다고 가정해봅시다.

<button class="wave-effect">Click Me</button>

2. CSS 스타일링 적용하기

CSS를 사용하여 파도 효과를 가진 UI 컴포넌트를 스타일링할 수 있습니다. 다음은 간단한 예시 코드입니다.

.wave-effect {
  position: relative;
  overflow: hidden;
  border: none;
  background: #2196f3;
  color: #fff;
  cursor: pointer;
}

.wave-effect::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  opacity: 0.5;
  transition: all 0.5s;
}

.wave-effect:hover::before {
  width: 200%;
  height: 200%;
  opacity: 0;
}

3. 자바스크립트로 파도 효과 구현하기

이제 자바스크립트를 사용하여 파도 효과를 추가할 수 있습니다. 다음은 예시 코드입니다.

function addWaveEffect() {
  const buttons = document.querySelectorAll('.wave-effect');
  
  buttons.forEach((button) => {
    button.addEventListener('click', (e) => {
      const wave = document.createElement('span');
      wave.className = 'wave';
      
      button.appendChild(wave);
      
      const rect = button.getBoundingClientRect();
      const offsetX = e.clientX - rect.left;
      const offsetY = e.clientY - rect.top;
      
      wave.style.left = `${offsetX}px`;
      wave.style.top = `${offsetY}px`;
      
      setTimeout(() => {
        wave.remove();
      }, 1000);
    });
  });
}

addWaveEffect();

이 자바스크립트 코드는 wave-effect 클래스를 가진 버튼을 클릭할 때마다 파도 효과를 추가합니다. 클릭한 위치에서 원 모양의 파도를 생성하고, 1초 후에 사라지도록 설정되어 있습니다.

결과 확인하기

위의 코드를 HTML 파일에 추가하고 웹 브라우저에서 실행해보세요. 버튼을 클릭할 때마다 파도 효과가 나타나는 것을 확인할 수 있을 것입니다.

결론

파도 효과를 가진 자바스크립트 UI 컴포넌트를 구현하는 방법에 대해 알아보았습니다. 이러한 시각적 효과를 사용하면 웹사이트나 앱에 독특하고 매력적인 요소를 추가할 수 있습니다. 이를 응용하여 다양한 UI 컴포넌트를 구현해보세요!

참고 자료