随着前端技术的不断发展与进步,界面交互的样式要求和美感也越来越高,很多网页的交互都加上了css3动画,这里作者给大家分享一个前端开发必掌握的一个css3波浪效果,赶紧学起来吧,加在自己开发网页的底部,给页面增加一点活泼的气息~【推荐学习:css视频教程】
css3波浪效果
这是使用 svg 和 css 动画制作的波浪效果,上半部分是蓝色(可修改成其他颜色)渐变的背景颜色,下半部分就是波浪,有四条波浪在不停的来回起伏,非常逼真。该波浪效果可用于大部分页面的底部,使页面增加一点活泼的气息。。
1.html构建
代码如下(示例):
21cb529bd715208237729e092b3c342e 填充蓝色(可修改成其他颜色)渐变的背景颜色
ee5ffed18f680ca409f4d9b2a2554691这部分就是波浪的svg,有四条波浪在不停的来回起伏,效果非常逼真
<div class="header"> <div class="inner-header flex"> <h1>简单的 css3 波浪效果</h1> </div> <div> <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="gentle-wave" d="m-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" /> </defs> <g class="parallax"> <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.7" /> <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.5)" /> <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.3)" /> <use xlink:href="#gentle-wave" x="48" y="7" fill="#fff" /> </g> </svg> </div> </div>
2.css编写
代码如下(示例):
这里通过css3的animation动画属性来控制四条线条在不停的来回起伏,形成波浪效果
.header { position: relative; text-align: center; background: linear-gradient(60deg, rgba(84, 58, 183, 1) 0%, rgba(0, 172, 193, 1) 100%);/* background: #ffafbd; background: -webkit-linear-gradient(to right, #ffc3a0, #ffafbd); background: linear-gradient(to right, #ffc3a0, #ffafbd); */ color: white;} .inner-header { height: 65vh; width: 100%; margin: 0; padding: 0;} .waves { position: relative; width: 100%; height: 15vh; margin-bottom: -7px; /*fix for safari gap*/ min-height: 100px; max-height: 150px;} .content { position: relative; height: 20vh; text-align: center; background-color: white;} .content a { margin: 0 5px; font-size: 12px; color: #333;} .content a:hover { color: #000;} /* animation */ .parallax > use { animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;}.parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s;}.parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s;}.parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s;}.parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s;}@keyframes move-forever { 0% { transform: translate3d(-90px, 0, 0); } 100% { transform: translate3d(85px, 0, 0); }}/*shrinking for mobile*/@media (max-width: 768px) { .waves { height: 40px; min-height: 40px; } .content { height: 30vh; } h1 { font-size: 24px; }}
3.完整代码
index.html文件
<!doctype html><html><head><meta charset="utf-8" /><title>简单的css3波浪效果演示_dowebok</title><link rel="stylesheet" href="style.css" /></head><body><div><div class="inner-header flex"><h1>简单的 css3 波浪效果</h1></div><div><svg 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="gentle-wave"d="m-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" /></defs><g><use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.7" /><use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.5)" /><use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.3)" /><use xlink:href="#gentle-wave" x="48" y="7" fill="#fff" /></g></svg></div></div> </body></html>
style.css文件body { margin: 0;} h1 { font-family: 'lato', sans-serif; font-weight: 300; letter-spacing: 2px; font-size: 48px;}p { font-family: 'lato', sans-serif; letter-spacing: 1px; font-size: 14px; color: #333333;} .header { position: relative; text-align: center; background: linear-gradient(60deg, rgba(84, 58, 183, 1) 0%, rgba(0, 172, 193, 1) 100%);/* background: #ffafbd; background: -webkit-linear-gradient(to right, #ffc3a0, #ffafbd); background: linear-gradient(to right, #ffc3a0, #ffafbd); */ color: white;}.logo { width: 50px; fill: white; padding-right: 15px; display: inline-block; vertical-align: middle;} .inner-header { height: 65vh; width: 100%; margin: 0; padding: 0;} .flex { /*flexbox for containers*/ display: flex; justify-content: center; align-items: center; text-align: center;} .waves { position: relative; width: 100%; height: 15vh; margin-bottom: -7px; /*fix for safari gap*/ min-height: 100px; max-height: 150px;} .content { position: relative; height: 20vh; text-align: center; background-color: white;} .content a { margin: 0 5px; font-size: 12px; color: #333;} .content a:hover { color: #000;} /* animation */ .parallax > use { animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;}.parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s;}.parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s;}.parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s;}.parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s;}@keyframes move-forever { 0% { transform: translate3d(-90px, 0, 0); } 100% { transform: translate3d(85px, 0, 0); }}/*shrinking for mobile*/@media (max-width: 768px) { .waves { height: 40px; min-height: 40px; } .content { height: 30vh; } h1 { font-size: 24px; }}
(学习视频分享:web前端)
以上就是纯css3怎么实现波浪效果?(代码示例)的详细内容。
