效果预览

按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。

https://codepen.io/zhang-ou/pen/erRzzR

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/cwrJys7

源代码下载

请从 github 下载。

https://github.com/comehope/front-end-daily-challenges/tree/master/011-ripple-pulse-loader-animation

代码解读

定义 dom,只有一个元素:

  1. <div class="circle"></div>

居中显示:

  1. html,
  2. body,
  3. .circle {
  4. height: 100%;
  5. display: flex;
  6. align-items: center;
  7. justify-content: center;
  8. background-color: black;
  9. }

画出中间的实心圆:

  1. :root {
  2. --innerRadius: 2em;
  3. }
  4. .circle {
  5. width: calc(var(--innerRadius) * 2);
  6. height: calc(var(--innerRadius) * 2);
  7. background-color: lime;
  8. border-radius: 50%;
  9. }

画出圆环:

  1. .circle {
  2. box-shadow: 0 0 0 calc(var(--innerRadius) - 0.4em) black,
  3. 0 0 0 var(--innerRadius) lime;
  4. }

用伪元素 ::before 画出动画用到的圆环:

  1. .circle::before {
  2. content: '';
  3. position: absolute;
  4. width: calc(var(--innerRadius) * 2 * 2);
  5. height: calc(var(--innerRadius) * 2 * 2);
  6. border: 2px solid lime;
  7. border-radius: 50%;
  8. }

增加动画效果:

  1. .circle::before
  2. animation: pulse 2s linear infinite;
  3. }
  4. @keyframes pulse {
  5. from {
  6. transform: scale(1);
  7. }
  8. to {
  9. transform: scale(2);
  10. }
  11. }

优化动画——增加渐淡和弹性效果:

  1. .circle::before
  2. animation: pulse 2s ease-out infinite;
  3. }
  4. @keyframes pulse {
  5. from {
  6. filter: opacity(0.9);
  7. }
  8. to {
  9. filter: opacity(0);
  10. }
  11. }

最后,用伪元素 ::after 再画出一个动的圆环:

  1. .circle::after {
  2. content: '';
  3. position: absolute;
  4. width: calc(var(--innerRadius) * 2 * 2);
  5. height: calc(var(--innerRadius) * 2 * 2);
  6. border: 2px solid lime;
  7. border-radius: 50%;
  8. animation: pulse 2s ease-out infinite;
  9. }
  10. .circle::after {
  11. animation-delay: 1s;
  12. }

大功告成!

知识点

前端每日实战:11# 视频演示如何用纯 CSS 创作一个荧光脉冲 loader 特效的更多相关文章

  1. 前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效

    效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/vjLQMM 可交互视频教程 此视频是可以交 ...

  2. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  3. 前端每日实战:84# 视频演示如何用纯 CSS 创作一个极品飞车 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MBbEMo 可交互视频 此视频是可 ...

  4. 前端每日实战:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/zhang-ou/pen/GdpPLE 可交互视频教程 此视频 ...

  5. 11.纯 CSS 创作一个荧光脉冲 loader 特效

    原文地址:https://segmentfault.com/a/1190000014700727 HTML代码: <html> <head> <link rel=&quo ...

  6. 前端每日实战:69# 视频演示如何用纯 CSS 创作一个单元素抛盒子的 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKwXbx 可交互视频 此视频是可 ...

  7. 前端每日实战:46# 视频演示如何用纯 CSS 创作一个在容器中反弹的小球

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/jKVbyE 可交互视频教程 此视频 ...

  8. 前端每日实战:146# 视频演示如何用纯 CSS 创作一个脉动 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/wYvGwr 可交互视频 此视频是可 ...

  9. 前端每日实战:113# 视频演示如何用纯 CSS 创作一个赛车 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mGdXGJ 可交互视频 此视频是可 ...

随机推荐

  1. 从输入url到页面展现的过程

    先看一幅图:(下面的所有图我都进行拉伸压缩了  如果看不到  可以右键复制图片地址 然后到浏览器粘贴查看  不然显示不全图片) mac没有画图软件  不好意思  xmind做的 1. 输入网址   当 ...

  2. 用apicloud+vue的VueLazyload实现缓存图片懒加载

    <script src="../../script/vue-lazyload.js"></script><img v-lazy="remot ...

  3. IDE引入mindmap插件,在项目中添加思维导图

    1.打开IDE,file--settings--plugins,搜索IDEA Mind Map 2.点击install,进行下载,然后按照提示restart重启IDEA,安装完成 3.创建mind m ...

  4. Vim文本编辑工具

    4文本编辑工具Vim Vim是vi的升级版,编辑文本时vi不会显示颜色而vim会显示颜色. 安装vim工具 #yum  install  –y  vim-enhanced Vim有三种模式:一般模式. ...

  5. 使用 PC 做 FTP/TFTP 服务器,上传和下载文件

    使用PC做TFTP服务器,上传和下载文件需要用到一个工具软件,IPOP,可百度下载. 1.在桌面新建一个空闲的文件夹,作为TFTP服务器的存储位置,然后打开IPOP软件,开启服务. 图片中 编号3 的 ...

  6. 【Linux-设备树】设备树

    Linux3.1之前的版本,对于一般的ARM平台的设备,板级信息一般存放在/arch/arm/mach-**目录下. 设备树对应的文件存放在/arch/arm/boot/dts/***.dts目录下 ...

  7. uboot 主Makefile分析

    一. Makefile 配置 1.1. make xxx_config 1.1.1. 笔者实验时是make x210_sd_config a. x210_sd_config是Makefile下的一个目 ...

  8. CF682C Alyona and the Tree

    题意翻译 题目描述 给你一棵树,边与节点都有权值,根节点为1,现不停删除叶子节点形成新树,问最少删掉几个点,能使得最后剩下的树内,∀v与其子树内∀u间边权的和小于点u权值 输入输出格式 输入格式: 第 ...

  9. 如何使用js在移动端和PC端居中

    在手机移动端和PC端控制居中是一个很蛋痛的问题,因为屏幕宽度在变化,所以就不要写死样式,那么我想用JS来控制,灵活的控制宽度,需要注意这三个时候: (1)首先需要在页面刚加载的时候就调用此函数, (2 ...

  10. Cocos2d-x-javaScript 的webSocket的代码

    var WebSocket = WebSocket || window.WebSocket || window.MozWebSocket; var WebSocketManager = cc.Clas ...