用纯CSS如何制作波浪移动的效果,步骤是什么
Admin 2022-07-13 群英技术资讯 1185 次浏览
这篇文章主要讲解了“用纯CSS如何制作波浪移动的效果,步骤是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。在某些页面上常常看到波浪的效果,虽然只有装饰的作用,但是却让页面看上去更生动了,同时某些情况下也能起到进度条的作用,而波浪的形式却比普通进度条更美观有趣。
如果想要实现波浪的效果,作者想到的第一个方法是通过 canvas 绘制波浪,然后用帧动画让波浪运动起来。这种方式实现的波浪效果应该是最好的,能够实现很多细节,比如控制波峰的高度、改变波浪的数量、根据前一个波浪的高度计算后一个波浪的高度等等。
但是往往需求并不会这么复杂,产品经理和设计想要的只是一个看上去还比较美观的波浪效果而已。如果用 canvas 去做,就实在是大材小用了,耗时耗力。所以这种情况下,就可以尝试使用 css 来完成这个小需求。
分析波浪效果

上面是作者完成的波浪效果的其中一种(不会做 gif,就用多张图片拼贴在一起代替吧),它有两个波峰,这两个波峰动起来时,会有一种向右推进的效果。我们先一个一个来看,如果要实现一个波峰,我们应该怎么做?
波峰具有弧度,在 css 中能够实现弧度效果的是border-raduis这个属性;而对于向右推进的效果,单个来看的话,其实可以理解为是旋转动画,我们可以通过animation来实现。
// html
<div class="wave"></div>
// style
.wave {
width: 300px;
height: 300px;
border-raduis: 50%;
background: blue;
}
上面代码中的.wave在页面上的显示效果是一个圆形。虽然还没有添加动画,但是我们已经可以预想到,即使旋转起来,我们视觉上看来并没有在运动。这要怎么解决呢?其实很简单,只要让每一个角的弧度都不同就行了。同时,让宽高不同,可以使绘制出来的效果更好。
.wave {
width: 250px;
height: 300px;
border-top-right-radius: 150px;
border-top-left-radius: 150px;
border-bottom-right-radius: 150px;
border-bottom-left-radius: 140px;
background: #adcbfe;
}
然后通过动画使这个不规则的形状动起来。
.wave {
width: 250px;
height: 300px;
border-top-right-radius: 150px;
border-top-left-radius: 150px;
border-bottom-right-radius: 150px;
border-bottom-left-radius: 140px;
background: #adcbfe;
animation: wave 4s linear infinite;
}
@keyframes wave {
0% {transform: rotate(0deg);}
100% {transform: rotate(360deg);}
}
关于 css 动画的使用,可以参考之前的一篇文章:
纯CSS实现轮播图效果
到这里,一个波浪的实现就完成了。第二个波浪的实现步骤和第一个是相同的,但是可以对width height border-raduis animation 这些属性进行修改,使两个波浪的运动节奏不同,有快有慢有高有低,这样波浪的效果就会更真实。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
前言我曾经遇到过一个难题. 我需要让一个摆动的房子从塔吊上落下,但点击落下途中,房子需要维持落下瞬间摆动的角度. 当时把我难坏了,刚开始我希望能获取到房子当前摆动的角
外边距折叠指的是毗邻的两个或多个外边距 (margin) 会合并成一个外边距,本文详细的介绍了一下css外边距折叠的实现,分为3种情况,非常具有实用价值,需要的朋友可以参考下
固定宽度这种方式是绝对定位居中,除了使用margin,还可以使用transform。宽度未知将子元素设置为行内元素,然后父元素设置text-align: center。
这篇文章主要介绍了canvas实现图片镜像翻转的2种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用CSS3能够实现很多有趣的文字效果,这篇文章给大家分享的是用CSS3怎样做凹凸和火焰的文字效果的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,感兴趣的朋友接下来一起跟随小编看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008