자바스크립트 애니메이션 프레임을 활용한 마우스 호버 효과 만들기
마우스 호버 효과를 만들 때 자바스크립트 애니메이션 프레임을 활용하면 더욱 동적이고 부드러운 효과를 구현할 수 있습니다. 이번 글에서는 자바스크립트를 사용하여 마우스 호버 효과를 만드는 방법을 알아보겠습니다.
🖱️ 마우스 호버 효과 만들기
우선 HTML 파일에 마우스 호버 효과를 적용할 요소를 생성합니다. 예를 들어 <div>
요소를 생성하고 hover-element
라는 클래스를 추가합니다.
<div class="hover-element"></div>
다음으로 CSS 파일을 열고 hover-element
클래스에 기본적인 스타일을 추가합니다. 이 예시에서는 배경색과 크기, 가운데 정렬을 설정했습니다.
.hover-element {
background-color: #ffcc00;
width: 200px;
height: 200px;
display: flex;
align-items: center;
justify-content: center;
}
이제 자바스크립트 파일을 열고 애니메이션 효과를 추가할 수 있습니다. 먼저 hover-element
요소를 선택하고 마우스가 요소 위로 진입했을 때와 떠날 때의 이벤트를 설정합니다.
const hoverElement = document.querySelector('.hover-element');
hoverElement.addEventListener('mouseenter', function() {
// 마우스가 요소 위로 진입할 때 발생하는 이벤트
});
hoverElement.addEventListener('mouseleave', function() {
// 마우스가 요소를 떠날 때 발생하는 이벤트
});
마우스가 요소 위로 진입할 때 발생하는 이벤트에서는 애니메이션을 시작하도록 구현해야합니다. 이를 위해 requestAnimationFrame()
함수를 사용합니다.
const hoverElement = document.querySelector('.hover-element');
let animationId;
hoverElement.addEventListener('mouseenter', function() {
animationId = requestAnimationFrame(animateHover);
});
hoverElement.addEventListener('mouseleave', function() {
cancelAnimationFrame(animationId);
});
function animateHover() {
// 애니메이션을 적용할 요소에 대한 코드 작성
// 요소의 스타일을 변경하여 움직이는 효과를 구현할 수 있습니다.
// 다음 프레임을 위해 다시 애니메이션을 요청합니다.
animationId = requestAnimationFrame(animateHover);
}
애니메이션 효과를 적용하기 위해 animateHover
함수 내에서 요소의 스타일을 변경합니다. 이 예시에서는 요소의 배경색을 랜덤한 색으로 변경하는 코드를 작성했습니다.
function animateHover() {
const randomColor = '#' + Math.random().toString(16).slice(2, 8);
hoverElement.style.backgroundColor = randomColor;
animationId = requestAnimationFrame(animateHover);
}
이제 마우스를 요소 위로 올리면 배경색이 계속해서 변경되는 애니메이션 효과를 확인할 수 있습니다.
🔗 참고 자료
#JavaScript