当前位置: 首页 > news >正文

css函数写个loading动画 | css预编译scss使用

 

效果如下 

             

如果你已经下载了scss的依赖,那么看二

 一.  vueCli使用scss,安装依赖

npm方式
npm install -D sass sass-loader
yarn方式
yarn add -D sass sass-loader
# 使用 npm 安装
npm install sass# 或使用 yarn 安装
yarn add sass

 

二.  styles里新建一个style.scss文件 

 

 在main.js文件中导入样式文件style.scss

 

在要用的页面写好视图部分

 <div class="loading"><div class="loading_item"></div><div class="loading_item"></div><div class="loading_item"></div><div class="loading_item"></div><div class="loading_item"></div><div class="loading_item"></div></div>

 

style.scss页面粘贴如下代码 

.loading{height: 100%;display: flex;justify-content: center;align-items: center;&_item{width: 20px;margin-right: 20px;background: green;border-radius: 15px;animation: loading 1s linear infinite;//线性,一直重复}
}
/* 高度依次上下,颜色可以按需改*/
@keyframes loading {0%,100%{height: 100px;background: rgb(48, 198, 6)n;}25% { height: 80px;   background: rgb(3, 146, 3);}50% {  height: 40px;  background: rgb(137, 231, 83); }80% { height: 20px;  background: rgb(171, 223, 149);}
}
/* 1-6个for循环,依次乘0.2s */
@for $i from 1 through 6{.loading_item:nth-child(#{$i}){animation-delay: #{$i*0.2s};}
}

 上面参数详解 :

 animation: loading 1s linear infinite;

loading关键帧名称,1s动画完成一个周期所需的时间,linear控制动画速度曲线,这里是匀速,infinite是循环播放

Tips:

animation: animation-name animation-duration animation-timing-function animation-delay animation-iteration-count animation-direction;

  • animation-name‌:定义要绑定到选择器的关键帧名称。

  • animation-duration‌:定义动画完成一个周期所需的时间。

  • animation-timing-function‌:定义动画的速度曲线,如linear、ease、ease-in、ease-out、ease-in-out或cubic-bezier()。

  • animation-delay‌:定义动画开始前的等待时间。

  • animation-iteration-count‌:定义动画播放的次数,可以是具体的数字或infinite。

  • animation-direction‌:定义动画是否应该轮流反向播放,可能的值有normal、reverse、alternate、alternate-reverse。

  • animation-fill-mode‌:定义动画在播放之前和之后如何应用样式。

  • animation-play-state‌:定义动画的播放状态,可能的值有running和paused。

  • 使用@keyframes规则,开发者可以定义动画的关键帧,即动画过程中的各个步骤。例如,可以定义动画的开始状态(from或0%)、中间状态(例如50%或25%)和结束状态(to或100%)。通过这种方式,开发者可以创建复杂的动画效果,使元素从一种样式逐渐变化为另一种样式。

http://www.dtcms.com/a/263880.html

相关文章:

  • YOLOv11性能评估全解析:从理论到实战的指标指南
  • GitHub已破4.5w star,从“零样本”到“少样本”TTS,5秒克隆声音,冲击传统录音棚!
  • 智能客服的进化论:当服务遇见 AI 的化学反应
  • 数据结构:递归:斐波那契数列(Fibonacci Sequence)
  • Android布局管理器实战指南:从LinearLayout到ConstraintLayout的优化之旅
  • 计算机网络第十章——网络层
  • 基于Netty-WebSocket构建高性能实时通信服务
  • nginx的管理员启动,停止,重启
  • 前端处理跨域的4种方式
  • uniapp+vue写小程序页面,实现一张图片默认放大后,可以在容器内上下左右拖动查看
  • JavaScript 安装使用教程
  • Web3区块链有哪些岗位?
  • 141.在 Vue 3 中使用 OpenLayers Link 交互:把地图中心点 / 缩放级别 / 旋转角度实时写进 URL,并同步解析显示
  • 【MyBatis保姆级教程下】万字XML进阶实战:配置指南与深度解析
  • python高级变量VIII
  • 转录组分析流程(四):Cox+Lasso筛选预后基因
  • JVM内存模型与垃圾回收机制分析
  • 【java链式调用流操作】
  • Python实现NuScenes数据集可视化:从3D边界框到2D图像的投影原理与实践
  • mac部署dify
  • 笔记/计算机网络
  • 【数据结构】 排序算法
  • beego打包发布到Centos系统及国产麒麟系统完整教程
  • 【文件读取】open | with | as
  • 实体类JavaBean
  • 到底什么是“数字化”?数字化的本质是什么?
  • 从输入到路径:AI赋能的地图语义解析与可视化探索之旅(2025技术全景)
  • 边截图边操作?试试 Snipaste 的浮动贴图功能
  • adc模数转换器
  • Gartner《Choosing Event Brokers to Support Event-DrivenArchitecture》心得