CSS와 자바스크립트를 이용한 트레일 애니메이션 만들기
트레일 애니메이션은 요소가 움직이는 동안 뒤 따르는 끄적끄적한 효과를 주는 애니메이션입니다. 이번 글에서는 CSS와 자바스크립트를 사용하여 간단한 트레일 애니메이션을 만드는 방법을 알아보겠습니다.
1. HTML 구조 만들기
먼저, HTML 구조를 만들어야 합니다. 이 예시에서는 container
라는 클래스를 가진 div 요소 안에 dot
이라는 클래스를 가진 여러 개의 div 요소를 넣을 것입니다. 이들은 트레일 효과를 나타내는 점들입니다. 아래는 예시 코드입니다.
<div class="container">
<div class="dot"></div>
<div class="dot"></div>
<div class="dot"></div>
<!-- ... 추가적인 dot 요소들 -->
</div>
2. CSS 스타일링 추가하기
이제 CSS로 점들과 컨테이너를 스타일링해야 합니다. 점의 크기, 색상, 위치 등을 설정해 주세요. 아래는 예시 코드입니다.
.container {
position: relative;
}
.dot {
position: absolute;
width: 10px;
height: 10px;
background-color: red;
border-radius: 50%;
}
3. 자바스크립트로 애니메이션 추가하기
트레일 애니메이션을 구현하기 위해 자바스크립트를 사용합니다. 우리는 점들을 마우스 커서의 위치로 이동시킬 것입니다. 아래는 예시 코드입니다.
const dots = document.querySelectorAll('.dot');
const container = document.querySelector('.container');
container.addEventListener('mousemove', (e) => {
dots.forEach((dot) => {
const { clientX, clientY } = e;
const dotRect = dot.getBoundingClientRect();
const dotX = dotRect.left + dotRect.width / 2;
const dotY = dotRect.top + dotRect.height / 2;
const dx = clientX - dotX;
const dy = clientY - dotY;
const distance = Math.sqrt(dx * dx + dy * dy);
dot.style.transform = `translate(${dx}px, ${dy}px)`;
dot.style.opacity = 1 - distance / 300;
});
});
위의 코드는 컨테이너 요소에 마우스 이벤트 리스너를 추가하여 마우스가 움직일 때마다 각 점의 위치와 투명도를 계산하여 설정합니다.
4. 결과 확인하기
이제 모든 준비가 끝났습니다. 웹 브라우저에서 HTML 파일을 열고 마우스를 움직여보세요. 점들이 마우스 커서를 따라 움직이며 뒤에 남은 트레일 효과를 확인할 수 있습니다.
마무리하며
이번에는 CSS와 자바스크립트를 이용하여 트레일 애니메이션을 만드는 방법을 알아보았습니다. 이를 응용하여 다양한 애니메이션 효과를 만들어 볼 수 있으니 창의력을 발휘해보세요!
#CodeWithTrailAnimation #CSS #JavaScript