效果预览:
<svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<defs><path id="wbg" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path></defs>
<g class="parallax wave">
<use xlink:href="#wbg" x="48" y="0" fill="rgba(34,166,237,0.7)" class="wave"></use>
<use xlink:href="#wbg" x="48" y="3" fill="rgba(34,166,237,0.5)" class="wave"></use>
<use xlink:href="#wbg" x="48" y="5" fill="rgba(34,166,237,0.3)" class="wave"></use>
<use xlink:href="#wbg" x="48" y="7" fill="rgba(34,166,237,0.2)" class="wave"></use>
<use xlink:href="#wbg" x="48" y="9" fill="rgba(34,166,237,0.1)" class="wave"></use>
</g>
</svg>
样式
.waves > .parallax.wave > use.wave {
animation:forever 25s cubic-bezier(.55, .5, .45, .5)infinite
}
.waves > .parallax.wave > use.wave:nth-child(1) {
animation-delay: -2s;
animation-duration:7s
}
.waves > .parallax.wave > use.wave:nth-child(2) {
animation-delay: -3s;
animation-duration:10s
}
.waves > .parallax.wave > use.wave:nth-child(3) {
animation-delay: -4s;
animation-duration:13s
}
.waves > .parallax.wave > use.wave:nth-child(4) {
animation-delay: -5s;
animation-duration:20s
}
@keyframes forever {
0% {
transform:translate3d(-90px, 0, 0)
}
100% {
transform:translate3d(85px, 0, 0)
}
}