span style="--i:0">span> span style="--i:1">..."/>

使用CSS3实现loading效果

6,075次阅读
没有评论

共计 1980 个字符,预计需要花费 5 分钟才能阅读完成。

效果展示

使用 CSS3 实现 loading 效果

具体实现

示例完全是使用 html+CSS3 实现,主要是用到了 CSS3 的 animateanimate-delay属性。

html 代码如下:

div class="container">
  span style="--i:0">span>
  span style="--i:1">span>
  span style="--i:2">span>
  span style="--i:3">span>
  span style="--i:4">span>
  span style="--i:5">span>
  span style="--i:6">span>
  span style="--i:7">span>
  span style="--i:8">span>
  span style="--i:9">span>
  span style="--i:10">span>
  span style="--i:11">span>
  span style="--i:12">span>
  span style="--i:13">span>
  span style="--i:14">span>
  span style="--i:15">span>
  span style="--i:16">span>
  span style="--i:17">span>
  span style="--i:18">span>
  span style="--i:19">span>
  span style="--i:20">span>
  span style="--i:21">span>
  span style="--i:22">span>
  span style="--i:23">span>
  span style="--i:24">span>
  span style="--i:25">span>
  span style="--i:26">span>
  span style="--i:27">span>
  span style="--i:28">span>
  span style="--i:29">span>
  span style="--i:30">span>
  span style="--i:31">span>
  span style="--i:32">span>
  span style="--i:33">span>
  span style="--i:34">span>
  span style="--i:35">span>
  span style="--i:36">span>
  span style="--i:37">span>
  span style="--i:38">span>
  span style="--i:39">span>
  span style="--i:40">span>
  span style="--i:41">span>
  span style="--i:42">span>
  span style="--i:43">span>
  span style="--i:44">span>
  span style="--i:45">span>
  span style="--i:46">span>
  span style="--i:47">span>
  span style="--i:48">span>
  span style="--i:49">span>
div>

代码有点冗余,写了 50 个 span 元素,当然可以使用 javascript 去循环生成,再插入到 DOM中。这段代码就是给每个 span 元素绑定了 --i 值,每个 span 元素就是效果中的变色部分,之所以用 --i 时方便在设置 span 元素样式时使用 var(--i) 变量来给 span 动态设置样式。

CSS3 代码如下:

style>
  span {
    display: inline-flex;
    width: 32px;
    height: 6px;
    background-color: #2c4766;
    border-radius: 8px;
    position: absolute;
    left: 0;
    transform-origin: 128px;
    transform: rotate(calc(var(--i) * (360deg / 50)));
    animation: animateBlink 1s linear infinite; 
    animation-delay: calc(
      (var(--i) * (1s / 50))
    ); 
  }

  @keyframes animateBlink {
    0% {
      background-color: #0ef;
    }
    25% {
      background-color: #2c4766;
    }
  }
style>

这段代码总共做了两件事,设置 span 的旋转角度和定义 animateBlink 动画并绑定。

旋转 span

通过 --i 变量设置每个 span 元素的旋转角度,均匀分布在一个环上。

设置中心点

transform-origin: [] [] [];

效果如下

使用 CSS3 实现 loading 效果

动画

这段代码就是定义了一个 animateBlink 动画,循环匀速执行动画,动画完全执行一轮时间持续 1s

原文地址: 使用 CSS3 实现 loading 效果

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-03发表,共计1980字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)