前言:之前在博客上看到一位大神用css实现的水波动画,真是受益匪浅,原来本以为要会svg、canvas等技术,原来根本不需要,只需css简短的十几行代码就可以达到效果。关键是大神的这种思路,非常值得我们学习,不多说了,直接上代码。

效果图

HTML部分:

CSS部分:

.wave {

position: relative;

width: 200px;

height: 200px;

background-color: rgb(118, 218, 255);

border-radius: 50%;

}

.wave:before,

.wave:after{

content: "";

position: absolute;

width: 400px;

height: 400px;

top: 0;

left: 50%;

background-color: rgba(255, 255, 255, .4);

border-radius: 45%;

transform: translate(-50%, -70%) rotate(0);

animation: rotate 6s linear infinite;

z-index: 10;

}

.wave:after {

border-radius: 47%;

background-color: rgba(255, 255, 255, .9);

transform: translate(-50%, -70%) rotate(0);

animation: rotate 10s linear -5s infinite;

z-index: 20;

}

@keyframes rotate {

50% {

transform: translate(-50%, -73%) rotate(180deg);

} 100% {

transform: translate(-50%, -70%) rotate(360deg);

}

}

原理:

原理十分简单,我们都知道,一个正方形,给它添加 border-radius: 50%,将会得到一个圆形。

border-radius:用来设置边框圆角,当使用一个半径时确定一个圆形。

好的,如果 border-radius 没到 50%,但是接近 50% ,我们会得到一个这样的图形:

注意边角,整个图形给人的感觉是有点圆,却不是很圆。

好的,那整这么个图形又有什么用?还能变出波浪来不成?

没错!就是这么神奇。我们让上面这个图形滚动起来(rotate) ,看看效果:

可能很多人看到这里还没懂旋转起来的意图,仔细盯着一边看,是会有类似波浪的起伏效果的。

而我们的目的,就是要借助这个动态变换的起伏动画,模拟制造出类似波浪的效果。

图中的虚线框就是我们实际的视野范围。

怎么样,看到这里是不是一下就打开思路了。

最终代码:

Document

.wave {

position: relative;

width: 200px;

height: 200px;

background-color: rgb(118, 218, 255);

border-radius: 50%;

}

.wave:before,

.wave:after{

content: "";

position: absolute;

width: 400px;

height: 400px;

top: 0;

left: 50%;

background-color: rgba(255, 255, 255, .4);

border-radius: 45%;

transform: translate(-50%, -70%) rotate(0);

animation: rotate 6s linear infinite;

z-index: 10;

}

.wave:after {

border-radius: 47%;

background-color: rgba(255, 255, 255, .9);

transform: translate(-50%, -70%) rotate(0);

animation: rotate 10s linear -5s infinite;

z-index: 20;

}

@keyframes rotate {

50% {

transform: translate(-50%, -73%) rotate(180deg);

} 100% {

transform: translate(-50%, -70%) rotate(360deg);

}

}

最终效果图:

如果这篇文章帮助到了你,请动动小手点下喜欢,你的支持是我最大的动力!

css彩色波浪动画,纯css实现波浪动画【转】相关推荐

  1. html5制作天气动画背景,CSS icon图标之纯CSS实现带动画效果的天气图标

    CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都可以巧妙的用CSS3动画属性来实现. 今天主要是和大家分享一个比较有创意.实用的CSS天气图标动画,静态 ...

  2. CSS 魔法系列:纯 CSS 绘制各种图形《系列五》

    我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

  3. [css] 能不能使用纯css使你的浏览器卡死?怎么实现?

    [css] 能不能使用纯css使你的浏览器卡死?怎么实现? 可以,用计算属性calc,变量 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与 ...

  4. html 数据交互动画,纯css实现可交互的动画

    如题,不借助JavaScript,只利用CSS,如何实现可交互式的动画呢?或许该需求仅此一种解决方案,绝无仅有.不知该方案是否是第一次找到. 什么是可交互动画? 就是可以响应用户的动画,直接上图吧,更 ...

  5. css3 太极动画,纯css实现太极阴阳鱼动画

    原标题:纯css实现太极阴阳鱼动画 今天看到一个有意思的效果,闲来无事做一个: 把2d静态的太极图改成了3d,阴极和阳极分到了两个平面里实现旋转效果,这个好实现,重点是实现它的透明效果,平面太极图显示 ...

  6. css纯加载动画,纯CSS实现loading动画加载效果

    原标题:纯CSS实现loading动画加载效果 loading动画图标的做法有很多.一般不想麻烦的人直接嵌入一张gif的动态图标即可实现!虽然该方法方便快捷,但是对网站的加载速度优化方面还不是最好,制 ...

  7. fullpage.js 滑入滑出滚屏动画, 纯css方式。利用css权重,无需js操作dom

    **完整案例在下方** 1.分析 如下图所示, 一共8屏, 当前在第2屏上,fullpage.js 会在当前可视屏的最外层div上,插入一个active的class,根据框架添加外层的active动态 ...

  8. CSS 魔法系列:纯 CSS 绘制基本图形(圆、椭圆等)

    我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

  9. html css字幕滚动代码,纯CSS实现滚动3D字幕

    一直以来我都想做一个滚动文本的效果,虽然有几种方法实现,其中还有使用WebGL的方法.但我还是想使用HTML和CSS来实现这样的效果. 很多年以前,在Web上实现滚动文本的动画效果一般是采用marqu ...

  10. css玻璃雨滴效果,纯css实现窗户玻璃雨滴逼真效果_javascript技巧

    写样式,毕竟每个雨滴都长得不一致嘛.使用预处理器除了可以帮助我们减少工作量之外,还可以使用预处理器中的循环.变量等.最主要的是可以使用随机函数产生的随机值,让我们不需要单独处理上百个雨滴. 有关于HA ...

最新文章

  1. 部署SSL证书中的风险
  2. 关于Fuzz工具的那些事儿
  3. 京东方网络推广外包将为三星提供OLED 屏幕可造成韩国显示产业动荡
  4. 那些数学不好的程序员?最后都如何了(文末送书)
  5. C++编程技巧—对数运算实现
  6. 大话微服务(Big Talk in MicroService)
  7. 使用SAP C4C的OData服务的deep insert操作创建Lead
  8. SQLlite 分页
  9. python matplotlib_高效使用 Python 可视化工具 Matplotlib
  10. 【转】详细图解Vmware与主机间共享文件的方法
  11. 为什么南通的方言会有这么多?
  12. 一些mootools的资源
  13. 【渝粤教育】国家开放大学2018年秋季 1121t健康教育与健康促进 参考试题
  14. 正则表达式(三)操作符的运算优先级、全部符号的解释
  15. 详解什么是BT种子、迅雷下载链接、磁力链接
  16. gazebo设置_GAZEBO学习笔记(3)
  17. 蛋蛋弹车2-具有功能安全EPS系统设计(工具篇2)
  18. 2021计算机技术考研非全日制,2021考研考非全日制还是全日制?盘点你不懂的非全日制深层含义~...
  19. 从零维到十维空间如何在纸上用手绘出来
  20. 腾讯soso退出历史舞台,搜索结果全部由搜狗提供

热门文章

  1. Jquery datatable 动态隐藏列(根据有无值)
  2. 解决nrm不能使用问题
  3. Kubernetes部署(四):k8s项目交付----(1)持续集成
  4. 贝叶斯统计推断_统计推断对决:频繁主义者与贝叶斯主义者
  5. android获取整体存储空间大小,Android 获取剩余存储空间
  6. 抢红包算法 c++_字节跳动|垂直策略|算法岗招聘
  7. 大数据架构Spark 进阶
  8. 数字信号处理之期中斩神篇(一重 搬山)
  9. random用法 python_python:random用法
  10. pdf压缩文件怎么压缩最小,pdf大小超过上传大小不能上传怎么压缩?