[javascript] 자바스크립트를 사용하여 파도 효과를 주는 반응형 웹 페이지 만들기
파도 효과는 웹 페이지에 동적이고 위트있는 요소를 추가해주는데 사용될 수 있습니다. 이번 튜토리얼에서는 자바스크립트를 사용하여 파도 효과를 주는 반응형 웹 페이지를 만드는 방법을 알아보겠습니다.
1. HTML 구조 설정하기
먼저, 페이지의 기본 구조를 설정하기 위해 HTML을 작성해야 합니다. 다음의 코드를 사용하여 기본적인 HTML 구조를 생성합니다.
<!DOCTYPE html>
<html>
<head>
<title>파도 효과 웹 페이지</title>
<link rel="stylesheet" href="styles.css"> <!-- CSS 파일 링크 -->
</head>
<body>
<div class="wave-container">
<div class="wave"></div>
</div>
<script src="script.js"></script> <!-- 자바스크립트 파일 링크 -->
</body>
</html>
2. CSS 스타일링 추가하기
파도 효과를 만들기 위해 CSS를 사용하여 요소들을 스타일링해야 합니다. 다음의 코드를 사용하여 CSS 파일 styles.css
를 생성하고 파도 효과에 필요한 스타일을 추가합니다.
.wave-container {
width: 100%;
height: 100vh;
overflow: hidden;
}
.wave {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url("wave.png"); /* 파도 이미지 파일 링크 */
animation: waveAnimation 10s linear infinite;
z-index: -1;
}
@keyframes waveAnimation {
0% {
background-position-x: 0;
background-position-y: 100vh;
}
100% {
background-position-x: 100vw;
background-position-y: 0;
}
}
3. 자바스크립트 애니메이션 추가하기
이제 파도 효과를 지정된 요소에 주기 위해 자바스크립트를 사용하여 애니메이션을 추가해야 합니다. 다음의 코드를 사용하여 자바스크립트 파일 script.js
를 생성하고 애니메이션을 추가합니다.
// 파도 요소 선택
const waveElement = document.querySelector(".wave");
// 윈도우 크기에 따라 파도 애니메이션 스피드 조정
function calculateAnimationSpeed() {
const waveWidth = waveElement.offsetWidth;
const wavesPerScreen = Math.ceil(window.innerWidth / waveWidth);
const animationSpeed = wavesPerScreen * 10; // 한 번의 애니메이션을 완료하는 데 걸리는 시간(초)
waveElement.style.animationDuration = `${animationSpeed}s`;
}
// 윈도우 크기 변경 시 파도 애니메이션 재조정
window.addEventListener("resize", calculateAnimationSpeed);
// 초기 애니메이션 스피드 계산 및 적용
calculateAnimationSpeed();
마치며
이렇게 자바스크립트를 사용하여 파도 효과를 주는 반응형 웹 페이지를 만들 수 있습니다. HTML 구조와 CSS 스타일링, 그리고 자바스크립트 애니메이션을 조합하여 동적이고 흥미로운 웹 페이지를 만들어보세요.
참고 자료: