首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯CSS 实现波浪移动效果

在某些页面上常常看到波浪的效果,虽然只有装饰的作用,但是却让页面看上去更生动了,同时某些情况下也能起到进度条的作用,而波浪的形式却比普通进度条更美观有趣。

如果想要实现波浪的效果,作者想到的第一个方法是通过 canvas 绘制波浪,然后用帧动画让波浪运动起来。这种方式实现的波浪效果应该是最好的,能够实现很多细节,比如控制波峰的高度、改变波浪的数量、根据前一个波浪的高度计算后一个波浪的高度等等。

但是往往需求并不会这么复杂,产品经理和设计想要的只是一个看上去还比较美观的波浪效果而已。如果用 canvas 去做,就实在是大材小用了,耗时耗力。所以这种情况下,就可以尝试使用 css 来完成这个小需求。

分析波浪效果

上面是作者完成的波浪效果的其中一种(不会做 gif,就用多张图片拼贴在一起代替吧),它有两个波峰,这两个波峰动起来时,会有一种向右推进的效果。我们先一个一个来看,如果要实现一个波峰,我们应该怎么做?

波峰具有弧度,在 css 中能够实现弧度效果的是这个属性;而对于向右推进的效果,单个来看的话,其实可以理解为是旋转动画,我们可以通过来实现。

上面代码中的在页面上的显示效果是一个圆形。虽然还没有添加动画,但是我们已经可以预想到,即使旋转起来,我们视觉上看来并没有在运动。这要怎么解决呢?其实很简单,只要让每一个角的弧度都不同就行了。同时,让宽高不同,可以使绘制出来的效果更好。

然后通过动画使这个不规则的形状动起来。

关于 css 动画的使用,可以参考之前的一篇文章:

到这里,一个波浪的实现就完成了。第二个波浪的实现步骤和第一个是相同的,但是可以对 这些属性进行修改,使两个波浪的运动节奏不同,有快有慢有高有低,这样波浪的效果就会更真实。

想要看源码的小伙伴可以赋值下面这个链接到浏览器打开:

https://github.com/TroyXL/Front-end/blob/master/2018/user-interface/wave.html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G0JPUK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券