纯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 动画的使用,可以参考之前的一篇文章:
到这里,一个波浪的实现就完成了。第二个波浪的实现步骤和第一个是相同的,但是可以对width height border-raduis animation 这些属性进行修改,使两个波浪的运动节奏不同,有快有慢有高有低,这样波浪的效果就会更真实。
想要看源码的小伙伴可以戳下面这个链接:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
纯css3制作鼠标悬停波浪形状弹性下拉菜单特效源码,当鼠标悬停波浪形菜单栏,弹出列表信息,鼠标离开自动收缩。效果非常逼真,本段代码可以在各个网页使用,有需要的朋友可2017-12-18
这是一款基于css3实现逼真的波浪起伏动画特效源码。画面上3层波浪涌动构成此起彼伏、连绵不断的波浪涌动视觉效果2017-07-27
CSS3实现的波浪闪动文字动画特效源码是一款炫酷文字动画特效,总共有4种效果,有波浪文字效果,文字闪动效果等多种效果,同时实现的这四类效果中,都可以到处相应的.css文2017-01-25
这是一款采用纯css3实现的音阶波浪loading加载动画特效源码。可呈现出由中间向两边上下波动的loading加载效果2016-12-27- 最近在做项目的时候,发现文字下方有个波浪线,寻思着,能不能用css来实现,减少资源,遂参考一些资料,后来真的实现了。所以就有了这篇文章了,本文详细的介绍了利用CSS32016-11-20
这是一款采用纯css3实现的文字波浪动画特效源码,画面上的文字呈现出带有3D立体凹凸渐变效果的波浪动画,该特效没有引入任何外部图形元素,且渐变效果流畅自然2016-05-28
我们分享过许多各种各样的CSS3菜单,应该说效果都比传统的CSS菜单强悍。这次要分享的这款CSS3菜单有点特别,菜单的整体形状类似波浪形,鼠标滑过菜单项时也会改变背景色表2014-10-18
一款3D波浪形动画特效。利用一堆div加上CSS3对每个div的控制2014-06-04
这篇文章主要介绍了CSS Houdini实现动态波浪纹效果,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-07-30










最新评论