分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

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

发布时间:2023-09-06 02:23责任编辑:傅花花关键词:CSS

效果预览

在线演示

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


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,只有一个元素:

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

居中显示:

html,body,.circle { ???height: 100%; ???display: flex; ???align-items: center; ???justify-content: center; ???background-color: black;}

画出中间的实心圆:

:root { ???--innerRadius: 2em;}.circle { ???width: calc(var(--innerRadius) * 2); ???height: calc(var(--innerRadius) * 2); ???background-color: lime; ???border-radius: 50%;}

画出圆环:

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

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

.circle::before { ???content: ''; ???position: absolute; ???width: calc(var(--innerRadius) * 2 * 2); ???height: calc(var(--innerRadius) * 2 * 2); ???border: 2px solid lime; ???border-radius: 50%;}

增加动画效果:

.circle::before ???animation: pulse 2s linear infinite;}@keyframes pulse { ???from { ???????transform: scale(1); ???} ???to { ???????transform: scale(2); ???}}

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

.circle::before ???animation: pulse 2s ease-out infinite;}@keyframes pulse { ???from { ???????filter: opacity(0.9); ???} ???to { ???????filter: opacity(0); ???}}

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

.circle::after { ???content: ''; ???position: absolute; ???width: calc(var(--innerRadius) * 2 * 2); ???height: calc(var(--innerRadius) * 2 * 2); ???border: 2px solid lime; ???border-radius: 50%; ???animation: pulse 2s ease-out infinite;}.circle::after { ???animation-delay: 1s;}

大功告成!

知识点

  • variables https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Variables
  • calc() https://developer.mozilla.org/en-US/docs/Web/CSS/calc
  • animation-timing-function https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function
  • filter https://developer.mozilla.org/en-US/docs/Web/CSS/filter#Functions
  • box-shadow https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow

原文地址:https://segmentfault.com/a/1190000014700727

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

原文地址:https://www.cnblogs.com/lalalagq/p/9988347.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved