在Web开发中,动画效果可以为网站增色不少,而使用纯 CSS 创建动画是一种轻量级且无需JavaScript的方式。在本篇文章中,我们将探讨如何创建一个漂亮的波浪动画,无需任何JavaScript,只使用HTML和CSS。
https://pengsirs.gitee.io/51xk/16/
我们首先需要创建一个HTML文档来容纳我们的波浪动画。以下是基本的HTML结构:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>纯CSS波浪动画</title>
<style>
<!-- 这里将添加CSS代码 -->
</style>
</head>
<body>
<div class="waveWrapper waveAnimation">
<div class="waveWrapperInner bgTop">
<div class="wave waveTop" style="background-image: url('https://pengsirs.gitee.io/51xk/16/img/wave-top.png')"></div>
</div>
<div class="waveWrapperInner bgMiddle">
<div class="wave waveMiddle" style="background-image: url('https://pengsirs.gitee.io/51xk/16/img/wave-mid.png')"></div>
</div>
<div class="waveWrapperInner bgBottom">
<div class="wave waveBottom" style="background-image: url('https://pengsirs.gitee.io/51xk/16/img/wave-bot.png')"></div>
</div>
</div>
</body>
</html>
在这个基本结构中,我们创建了一个包含波浪动画的 div 容器,并设置了三个波浪层次,每个层次使用不同的背景图片。
接下来,让我们来创建波浪动画的CSS部分。我们将使用 @keyframes 规则来定义动画,并为不同的波浪层次设置不同的动画参数。
@keyframes move_wave {
0% {
transform: translateX(0) translateZ(0) scaleY(1)
}
50% {
transform: translateX(-25%) translateZ(0) scaleY(0.55)
}
100% {
transform: translateX(-50%) translateZ(0) scaleY(1)
}
}
.waveWrapper {
overflow: hidden;
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: auto;
}
.waveWrapperInner {
position: absolute;
width: 100%;
overflow: hidden;
height: 100%;
bottom: -1px;
background-image: linear-gradient(to top, #86377b 20%, #27273c 80%);
}
.bgTop {
z-index: 15;
opacity: 0.5;
}
.bgMiddle {
z-index: 10;
opacity: 0.75;
}
.bgBottom {
z-index: 5;
}
.wave {
position: absolute;
left: 0;
width: 200%;
height: 100%;
background-repeat: repeat no-repeat;
background-position: 0 bottom;
transform-origin: center bottom;
}
.waveTop {
background-size: 50% 100px;
}
.waveAnimation .waveTop {
animation: move-wave 3s;
-webkit-animation: move-wave 3s;
-webkit-animation-delay: 1s;
animation-delay: 1s;
}
.waveMiddle {
background-size: 50% 120px;
}
.waveAnimation .waveMiddle {
animation: move_wave 10s linear infinite;
}
.waveBottom {
background-size: 50% 100px;
}
.waveAnimation .waveBottom {
animation: move_wave 15s linear infinite;
}
在上面的CSS代码中,我们定义了 move_wave 动画,它将波浪移动,使其看起来像是在水面上波动。我们为不同层次的波浪设置了不同的动画参数,以创建更丰富的效果。
现在,我们已经成功创建了一个漂亮的纯CSS波浪动画,无需任何JavaScript的参与。这个动画可以用于网站的背景或其他部分,为网站增加一些视觉吸引力。你可以根据自己的需求调整动画参数和样式,以获得不同的效果。希望这篇文章对你有所帮助,让你更了解如何使用CSS创建令人印象深刻的动画。