轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

徐小夕 等级 292 0 0

css3给我们前端开发带来了很便利, 我们可以使用css3 的新特性实现各种形状和动效, 接下来笔者就来带大家介绍如何用css3实现 H5-Dooring编辑器 中的水波动画.

轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

由于生成gif的工具比较弱(在线求好用的macgif录频生成工具...), 我不得不上传个原图, 大家自行脑补.轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

接下来我们来研究实现原理和实现方式.

动画拆解

要想用纯css实现曲线, 我们第一反应就是用border-radius这个属性, 比如说实现一个圆, 我们只需要如下设置:

.circle {
  border-radius: 50%;
}

实现椭圆,扇形, 半椭圆这些, 只需要设置不同边的圆角即可, 如下:

.circle {
  border-radius: 50% 100% 40% 60%;
}

以上的代码效果如下: 轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

我们再发挥一下想象, 如果是闭合曲线, 是不是也能用同样的方法实现呢? 轻松教你使用纯css实现H5-Doorin编辑器中的水波动画 我们只需要将background换成border, 调整border-radius参数即可. 接下来给大家看一下我用css画的一个图形, 各位可以参考学习一下: 轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

当然使用相同的原理我们可以实现更多有意思的图案, 笔者这里就不一一举例了.

回归正题, 我们来看看水波动画的实现原理. 首先不规则动画我们实现了, 剩下的工作就是如何实现波浪波浪动画, 参考上面不规则图形的实现方案, 波浪线的制作可以采用类似裁切来实现, 如下: 轻松教你使用纯css实现H5-Doorin编辑器中的水波动画 由上图可以看出, 我们使用cssborder-radius做一个矩形和一个圆角矩形, 使用transform来设置偏移和旋转, 就可以实现底部裁切后的曲面. 最后我们使用animation动画让其运动来看看效果:

轻松教你使用纯css实现H5-Doorin编辑器中的水波动画

我们只需要优化上面的动画, 让背景更柔和, 比如说圆形, 容器溢出隐藏, 这样就可以实现H5-Dooring编辑器 中的水波动画了, css源码如下:

.dragPay {
      position: absolute;
      z-index: 99999;
      left: 414px;
      top: 156px;
      width: 60px;
      height: 60px;
      border-radius: 50%;
      border: 3px solid #20c961;
      background: #ffffff;
      overflow: hidden;
      padding: 5px;
      box-sizing: border-box;
}
.dragPay .wave {
    position: relative;
    left: -8px;
    width: 60px;
    height: 60px;
    background-image: linear-gradient(-180deg, #8dec8a 13%, #70cf23 91%);
    border-radius: 50%;
    line-height: 60px;
    text-align: center;
    font-size: 32px;
    cursor: pointer;
}
.dragPay .waveMask {
    position: absolute;
    width: 120px;
    height: 120px;
    top: 0;
    left: 50%;
    border-radius: 40%;
    background-color: rgba(255, 255, 255, 0.9);
    transform: translate(-50%, -82%) rotate(0);
    animation: toRotate 10s linear -5s infinite;
    z-index: 20;
    pointer-events: none;
}
@keyframes toRotate {
    50% {
    transform: translate(-50%, -70%) rotate(180deg);
    }
    100% {
    transform: translate(-50%, -70%) rotate(360deg);
    }
}

html结构如下:

<div class="dragPay">
    <div class="wave">
      <span>⛽️</span>
    </div>
    <div class="waveMask"></div>
</div>

当然我们可以使用伪元素来优化dom结构. 大家可以亲自感受一下.

更多css3案例/学习技巧

dooring更新日志

  1. 图片库支持自定义图片上传
  2. 修复预览页面方法隐藏bug
    1. dooring文档添加部署和二次开发文档,具体包括:
    2. dooring开发文档迭代
    3. 表单组件支持布局概念
    4. 支持表单数据批量导入,删除
    5. 图标组件支持自定义上传

近期规划

  1. 完善api接口文档
  2. pc端页面编辑器
  3. beta版初版
收藏
评论区

相关推荐

css3实战汇总(附源码)
本文是继上一篇文章用css3实现惊艳面试官的背景即背景动画(高级附源码)(https://juejin.im/post/6844903950123188237)的续篇也是本人最后一篇介绍css3技巧的文章,因为css这块知识难点不是很多,更多的在于去熟悉css3的新特性和基础理论知识。所以写这篇文章的目的一方面是对自己工作中一些css高级技巧的总结,另一
《css大法》之使用伪元素实现超实用的图标库(附源码
今天我们来复盘一下前端中css伪元素的知识以及如何用css伪元素来减轻javascript的压力,做出一些脑洞大开的图形。 预备知识 伪元素 伪元素是一个附
《前端实战总结》之使用纯css实现网站换肤和焦点图切换动画
今天我们来继续复盘一些工作中常用的css技巧和知识,以便我们可以更加优雅的用css实现富有动感的网站. 你将收获 网站换肤设计方案介绍 :target伪类介绍和用法以及如何使用css实现网站换肤 transition动画以及如何用纯css实现焦点图动画 效果展示 1.网站换肤 (https://imghelloworld.ossc
巧用css圆角实现有点意思的加载动画
作为一名前端工程师, 需要对css技巧有充分的研究和了解, 接下来笔者将会带大家一起掌握如何用css的圆角属性来实现有点意思的加载动画. 如果想学习更多css实用技巧, 可以参考笔者以下的文章: <div style"display:flex; flexwrap:wrap; alignitems: center;" <a href"https:/
2. web前端开发分享-css,js进阶篇
2. web前端开发分享css,js进阶篇 一,css进阶篇:   等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后
CSS Modules 解决 react 项目 css 样式互相影响的问题
CSS Modules 解决 react 项目 css 样式互相影响的问题 CSS Modules 解决 react 项目 css 样式互相影响的问题 (http
css之元素居中
行内元素居中 文本垂直居中 单行文本垂直居中 设置lineheight与盒子高度一样就行 这里有一个误区,我经常在设置单行文本居中的时候,会习惯性的设置height属性与linheight属性一样,其实完全没必要,只设置lineheight就行,这时候盒子的高度由lineheight撑起来,与height完全相同。 多行文本垂直居中 1. ve
轻松教你使用纯css实现水波动画
css3给我们前端开发带来了很便利, 我们可以使用css3 的新特新实现各种形状和动效, 接下来笔者就来带大家介绍如何用css3实现 H5Dooring编辑器(https://github.com/MrXujiang/h5Dooring) 中的水波动画. (https://imghelloworld.osscnbeijing.aliy
轻松教你使用纯css实现H5-Doorin编辑器中的水波动画
css3给我们前端开发带来了很便利, 我们可以使用css3 的新特性实现各种形状和动效, 接下来笔者就来带大家介绍如何用css3实现 H5Dooring编辑器(https://github.com/MrXujiang/h5Dooring) 中的水波动画. (https://imghelloworld.osscnbeijing.aliy
原来CSS的background还可以这么玩
身为一个前端开发者,背景是开发中的常客。大到整个网站的主题背景,小到一个按钮的背景。CSS 的 background 属性基本上每天开发都会遇到,绝大多数情况下我们都只会使用到了纯色背景或者图片背景。如果你想让你开发的内容看起来更加生动有趣,通过本文让你用纯CSS也可以开发出炫酷的背景。 开始之前在开始之前,先请你回答下面的问题,如果你能全部回答
30个前端开发人员必备的顶级工具
在本文中,我为前端Web开发人员汇总了30种顶级工具,从代码编辑器和代码游乐场到CSS生成器,JS库等等。 (https://imghelloworld.osscnbeijing.aliyuncs.com/2e7966318084a45d05a0926cbd749a02.png) 目录 CSS代码生成器 CSS3 Generator
Vue进阶(幺柒陆):CSS预编译语言Sass、Scss、Less和Stylus
什么是CSS预处理器CSS预处理器定义了一种新的语言,它的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件。开发者只需要使用这种语言进行编码工作,减少枯燥无味的CSS代码
只听说过CSS in JS,怎么还有JS in CSS?
CSS in JS是一种解决css问题想法的集合,而不是一个指定的库。从CSS in JS的字面意思可以看出,它是将css样式写在JavaScript文件中,而不需要独立出.css、.less之类的文件。将css放在js中使我们更方便的使用js的变量、模块化、treeshaking。还解决了css中的一些问题,譬如:更方便解决基于状态的样式,更容易追溯依赖关
你可能不知道的10个CSS新功能(2021版)
多年来,CSS已经超越了背景颜色、边框、文本样式、边距和盒模型。现代CSS能够提供一系列的功能,而在过去,您需要JavaScript或变通方法来实现这些功能。 为了庆祝它在2021年取得的成就,在这篇文章中,我们想看看一些你可能不知道的令人惊叹的CSS新特性。我们将强调web设计人员和开发人员可以用现代CSS做的很酷的事情,讨论用例,浏览器支持,并给你一个
如何提高CSS性能
结合现代网站的复杂性和浏览器处理 CSS 的方式,即使是适量的CSS也会成为设备受限、网络延迟、带宽或数据限制的瓶颈。因为性能是用户体验的一个至关重要的部分,所以必须确保在各种形状和尺寸的设备上提供一致的高质量体验,这也需要优化你的CSS。本篇文章将涵盖CSS会导致哪些性能问题,以及如何制作不妨碍人们使用的CSS的最佳实践。 目录 CSS是如何工作的?