8种CSS实现loading加载特效的小技巧(分享)

本篇文章给大家分享8种css实现loading加载特效的小技巧,希望对大家有所帮助!

8种CSS实现loading加载特效的小技巧(分享)

为什么会写这种文章呢?平时开发的时候,我们遇到加载,要么是UI框架中自带,要么就是百度,然后CV到项目中?但是,自己实现的时候,又会没有思路。久而久之,变成了CV工程师。本文针对不同的加载方式,讲解其中的思路,希望大家不只是会用,更要是会写。实践才能出真知。(学习视频分享:css视频教程、web前端)

本文只介绍圈形加载。其他的会在其他文章中介绍。

loader-1

1.gif

立即学习“前端免费学习笔记(深入)”;

这应该是最简单的CSS加载了。在圆圈上有一个红色的圆弧,仔细观察会发现,这个圆弧正好是1/4.

实现逻辑:

一个宽高相等容器,设定border为白色。然后给底边bottom设置红色,

2.png

当设定border-radius是50%,那他正好可以变成一个圆。

3.png

给这个圆加上旋转的动画。CSS中旋转角度的动画是rotate()我们只要给他设定从0旋转到360即可。(这个动画会在下面多次使用,下文不再赘述)

 @-webkit-keyframes rotation {    0% {      transform: rotate(0deg);    }    100% {      transform: rotate(360deg);    }  }

完整代码

.loader-1 {    width: 48px;    height: 48px;    border: 5px solid #FFF;    border-bottom-color: #FF3D00;    border-radius: 50%;    display: inline-block;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}

loader-2

4.gif

观察:外围是一个圈,内部有一个红色的元素在转动。

实现逻辑

一个宽高相等的容器,加上白色的边,50%的圆角。这样就是外围的圈。

5.png

里面的红色是如何实现?这里有两个思路。1;新增一个小div,让他在里面,并且跟loader-1一样,设置一个红色的底边。2:使用::after,思路跟方法1 一致。

6.png

加上旋转的动画。

完整代码

.loader-2 {    width: 48px;    height: 48px;    border: 3px solid #FFF;    border-radius: 50%;    display: inline-block;    position: relative;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-2:after {    content: "";    position: absolute;    left: 50%;    top: 50%;    transform: translate(-50%, -50%);    width: 40px;    height: 40px;    border-radius: 50%;    border: 3px solid transparent;    border-bottom-color: #FF3D00;}

loader-3

7.gif

观察:内部是一个圆,外围是一个红色的圆弧。

实现逻辑

这个加载效果跟loader-2是一致的,区别就是红色圆弧在内外。

完整代码

.loader-3 {    width: 48px;    height: 48px;    border: 3px solid #FFF;    border-radius: 50%;    display: inline-block;    position: relative;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-3:after {    content: "";    position: absolute;    left: 50%;    top: 50%;    transform: translate(-50%, -50%);    width: 56px;    height: 56px;    border-radius: 50%;    border: 3px solid transparent;    border-bottom-color: #FF3D00;}

loader-4

8.gif

观察:外围是一个圆,内部有两个圆,这两个圆正好是对称的。

实现逻辑

一个宽高相等的容器,加上白色的边,50%的圆角。这样就是外围的圈。

9.png

里面的红色是如何实现?这里有两个思路。1;新增两个小div,背景颜色设置为红色,然后设置50%圆角,这样看上去就像是两个小点。2:使用::after和::before,思路跟方法1 一致。

10.png

加上旋转的动画。

完整代码

.loader-4 {    width: 48px;    height: 48px;    border: 2px solid #FFF;    border-radius: 50%;    display: inline-block;    position: relative;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-4:before {    left: auto;    top: auto;    right: 0;    bottom: 0;    content: "";    position: absolute;    background: #FF3D00;    width: 6px;    height: 6px;    transform: translate(-150%, -150%);    border-radius: 50%;}
.loader-4:after {    content: "";    position: absolute;    left: 0;    top: 0;    background: #FF3D00;    width: 6px;    height: 6px;    transform: translate(150%, 150%);    border-radius: 50%;}

loader-5

11.gif

观察:一共是三层,最外层白圈,中间红圈,里边白圈。每一圈都有一个一半圆弧的缺口,外圈和最内圈的旋转方向一致。

实现逻辑

一个宽高相等的容器,加上白色的边,50%的圆角。这样就是外围的圈。

12.png

这里的问题是,圈的缺口如何实现,其实很简单,在css中有一个属性值:transparent,利用这个值给边框设置透明,即可实现缺口。

13.png

对于内部的红色和白色圆弧,继续使用::after和::before即可。

14.png

加上动画,这里有一个反方向旋转的动画(rotationBack)。这里设置旋转是往负角度,旋转即可反方向旋转。

  @keyframes rotationBack {    0% {      transform: rotate(0deg);    }    100% {      transform: rotate(-360deg);    }  }

完整代码

.loader-5 {    width: 48px;    height: 48px;    border-radius: 50%;    display: inline-block;    position: relative;    border: 3px solid;    border-color: #FFF #FFF transparent transparent;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-5:before {    width: 32px;    height: 32px;    border-color: #FFF #FFF transparent transparent;    -webkit-animation: rotation 1.5s linear infinite;    animation: rotation 1.5s linear infinite;}
.loader-5:after, .loader-5:before {    content: "";    position: absolute;    left: 0;    right: 0;    top: 0;    bottom: 0;    margin: auto;    border: 3px solid;    border-color: transparent transparent #FF3D00 #FF3D00;    width: 40px;    height: 40px;    border-radius: 50%;    -webkit-animation: rotationBack 0.5s linear infinite;    animation: rotationBack 0.5s linear infinite;     transform-origin: center center; *}

loader-6

15.gif

观察:看上去像是一个时钟,一个圆里面有一根指针。

实现逻辑

一个宽高相等的容器,加上白色的边,50%的圆角。这样就是外围的圈。

16.png

指针是如何实现的:从这里开始不再讨论新增div的情况。其实红色的指针就是一个单纯的宽高不一致的容器。

17.png

完整代码

.loader-6 {    width: 48px;    height: 48px;    border: 2px solid #FFF;    border-radius: 50%;    display: inline-block;    position: relative;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-6:after {    content: "";    position: absolute;    left: 50%;    top: 0;    background: #FF3D00;    width: 3px;    height: 24px;    transform: translateX(-50%);}

loader-7

18.gif

观察:首先确定几个圈,一共两个。当第一个圈还没消失,第二个圈已经出现。最后出现了类似水波的效果。同时要注意的是,这两个两个圈是一样大的,这是因为他们最终消失的地方是一致的。

实现逻辑

首先确定,这两个圈是否在容器上。上面一直时在容器上添加边框,当然这个例子也可以,但是为了实现的简单,我们把这两个圈放在::after和::before中。

19.png

加上动画,这里的圈是逐渐放大的,在CSS中scale用来放大缩小元素。同时为了实现波纹逐渐清晰的效果,我们加上透明度。

  @keyframes animloader7 {    0% {      transform: scale(0);      opacity: 1;    }    100% {      transform: scale(1);      opacity: 0;    }  }

完整代码

这里因为两个圈是先后出现的,所以需要一个圈加上delay

.loader-7 {    width: 48px;    height: 48px;    display: inline-block;    position: relative;}
.loader-7::after, .loader--7::before {    content: "";    width: 48px;    height: 48px;    border-radius: 50%;    border: 2px solid #FFF;    position: absolute;    left: 0;    top: 0;    -webkit-animation: animloader7 2s linear infinite;    animation: animloader7 2s linear infinite;}
.loader-7::after {    -webkit-animation-delay: 1s;    animation-delay: 1s;}.loader-7::after, .loader-7::before {    content: "";    width: 48px;    height: 48px;    border-radius: 50%;    border: 2px solid #FFF;    position: absolute;    left: 0;    top: 0;    -webkit-animation: animloader7 2s linear infinite;    animation: animloader7 2s linear infinite;}

loader-8

20.gif

观察:一段圆弧加上一个三角形。

实现逻辑

一个宽高相等的容器,加上白色的边,50%的圆角。这样就是外围的圈。

21.png

transparent,利用这个值给边框设置透明,即可实现缺口。

22.png

在:after上创建箭头。CSS中我们有多种方法实现三角形,其中最简单是使用border,不需要给元素设置宽高,只需要设置border的大小,并且只有一边设置颜色。

border: 10px solid transparent;border-right-color: #FFF

加上旋转动画。

完整代码

.loader-8 {    width: 48px;    height: 48px;    border: 3px solid #FFF;    border-bottom-color: transparent;    border-radius: 50%;    display: inline-block;    position: relative;    -webkit-animation: rotation 1s linear infinite;    animation: rotation 1s linear infinite;}
.loader-8:after {    content: "";    position: absolute;    left: 20px;    top: 31px;    border: 10px solid transparent;    border-right-color: #FFF;    transform: rotate(-40deg);}

本文转载自:https://juejin.cn/post/7018466377551839269作者:前端picker

更多编程相关知识,请访问:编程入门!!

以上就是8种CSS实现loading加载特效的小技巧(分享)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1621898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 07:40:25
下一篇 2025年12月24日 07:40:37

相关推荐

  • 10+个让你的项目大放异彩的CSS loading加载特效,快来收藏吧!!

    本篇文章给大家分享10+个loading加载特效,保证让你的项目大放异彩,希望对大家有所帮助,快来收藏吧!! 相信大家经常会使用到加载动画,但是大部分组件库的加载样式都太简洁了。 这次给前端工友们收集了10+个高逼格加载动画效果!!复制就能直接用!! 来吧展示 1、一个”滚动&#8221…

    2025年12月24日 好文分享
    000
  • 聊聊css为什么需要模块化?怎么进行模块化?

    你的 css 也需要模块化 css “局部”样式 sass、less 通过 @import ,部分解决的 css 模块化的问题。 由于 css 是全局的,在被引入的文件和当前文件出现重名的情况下,前者样式就会被后者覆盖。在引入一些公用组件,或者多人协作开发同一页面的时候,就需要考虑样式会不会被覆盖,…

    好文分享 2025年12月24日
    000
  • CSS+JS实现爱心点赞按钮(代码示例)

    本篇文章给大家介绍一下css+js实现一个“爱之满满”点赞按钮的方法,希望对大家有所帮助! 前段时间在看一档说唱节目,被里面的一个说唱歌手JBcob的爱之满满这句词给洗脑了。 于是这次给大家带来一个爱之满满的点赞按钮,让大家在点赞的同时还能感受到被爱包裹的感觉。 立即学习“前端免费学习笔记(深入)”…

    2025年12月24日 好文分享
    000
  • 浅析Scss基础语法和导入SASS文件的方法

    本篇文章主要介绍最基础的使用和语法,可以看到,scss引入的变量和嵌套,极大地方便了开发工作,结合其自带的插值表达式,使得css样式编写非常灵活! Sass语法介绍 sass有两种语法格式Sass(早期的缩进格式:Indented Sass)和SCSS(Sassy CSS) 目前最常用的是SCSS,…

    2025年12月24日
    000
  • CSS如何给文字二次加粗并加上边框(技巧分享)

    css如何给文字二次加粗再加边框?下面本篇文章给大家介绍一下使用css给文字二次加粗并加上边框的方法,希望对大家有所帮助! p { font-size: 64px; letter-spacing: 6px; font-weight: bold; -webkit-text-stroke: 2px #0…

    2025年12月24日
    000
  • css的三种定位方式是什么

    css的三种定位方式是:1、相对定位,元素的位置相对于它的原始位置计算而来,语法“position:relative;”;2、固定定位,语法“position:fixed;”;3、绝对定位,语法“position:absolute;”。 本教程操作环境:windows7系统、CSS3&&am…

    2025年12月24日
    000
  • css里solid是什么意思

    solid的意思为“实心的”,是css border-style属性的一个属性值,表示“实线”;将border-style属性的值设置为“solid”可以定义实线边框。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 solid是css中bord…

    2025年12月24日 好文分享
    000
  • css怎么设置body的颜色

    css设置body颜色的方法:1、使用“body{color: 颜色值;}”语句设置body的字体颜色;2、使用“body{background-color: 颜色值;}”语句设置body的背景颜色。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑…

    2025年12月24日
    000
  • css怎么设置hr的宽度

    在css中,可以利用width属性来设置hr的宽度,该属性的作用就是设置元素的宽度,只需要给hr元素设置“hr{width: 宽度值+单位;}”样式即可。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 HTML中 标签设置水平线的宽度默认是占满…

    2025年12月24日
    000
  • css插入形式有哪几种

    CSS插入形式:1、把css代码写到元素标签的style属性中;2、将css代码写在“”和“”标签对间;3、将css代码写在css文件中,用link标签导入;4、用“@import”规则导入css代码文件。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G…

    2025年12月24日 好文分享
    000
  • css怎么修改字体颜色

    在css中,可以使用color属性来修改字体颜色,该属性的作用就是设置文本的颜色,只需要给包含字体文本的元素添加“color:颜色值;”即可。颜色值可以使用颜色名、十六进制数值、RGB或RGBA值、HSL或HSLA值来定义。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月24日
    000
  • css怎么设置超出显示省略号

    css设置超出显示省略号的方法:1、使用“overflow:hidden;”语句把超出的部分隐藏起来;2、使用“text-overflow:ellipsis;”语句在文本溢出包含元素时,显示省略符号来代表被隐藏的部分。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日
    000
  • css怎么实现三角形

    实现方法:1、利用高宽为零的容器和透明的border;2、利用线性渐变linear-gradient;3、使用“transform:rotate”配合“overflow:hidden”;4、利用“▼”、“▲”等字符绘制。 本教程操作环境:windows7系统、CSS3&&HTML5版…

    2025年12月24日 好文分享
    000
  • css如何设置边框圆角

    在css中,可以利用border-radius属性来设置边框圆角,该属性的作用就是给边框添加圆角效果,只需要给元素添加“border-radius:圆角半径值;”样式,即可同时设置四个边框的圆角效果。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑…

    2025年12月24日 好文分享
    000
  • css要如何清除浮动

    css清除浮动的方法:1、浮动代码后添加一个设置了“clear:both”样式的空div标签。2、给父级元素添加一个设置“clear:both;”样式的after伪元素。3、给父元素设置“overflow: auto”样式。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月24日
    000
  • css调用方法是什么

    css调用方法:1、在文档head部分通过style定义的css内部样式,需要在网页的标签中使用css选择器名称调用;2、写在外部文件的css样式,在HTML网页中通过link标签调用。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 在HTML…

    2025年12月24日
    000
  • 怎么看网页css

    查看网页css的方法:1、在浏览器中打开指定网页;2、在网页空白处,点击鼠标右键,选择“审查元素”选项或按“F12”键,打开开发者控制面板;3、选择“Elements”选项卡,点击网页元素即可在控制面板右侧查看相应的css代码。 本教程操作环境:windows7系统、CSS3&&HT…

    2025年12月24日 好文分享
    000
  • css怎么去除表格边框

    去除方法:1、给table、th、td元素添加“border:0;”样式;2、给table、th、td元素添加“border-style:none;”样式;3、给table、th、td元素添加“border:transparent;”样式。 本教程操作环境:windows7系统、CSS3&&…

    2025年12月24日 好文分享
    000
  • css的盒模型有几种

    css的盒模型有2种,分别为:1、W3c标准的盒子模型(标准盒模型),width和height指的是内容区域的宽度和高度;2、IE标准的盒子模型(怪异盒模型),width和height指的是内容区域、边框、内边距总的宽度和高度。 本教程操作环境:windows7系统、CSS3&&HT…

    2025年12月24日 好文分享
    000
  • css中字间距怎么设置

    css设置字间距的方法:1、使用letter-spacing属性,语法“letter-spacing:间距值;”;2、使用word-spacing属性,语法“word-spacing:间距值;”。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 …

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信