Pure HTML+CSS to achieve Element loading effect

Pure HTML+CSS to achieve Element loading effect

This is the effect of the Element UI loading component. It looks cool. Let’s implement it!

analyze

The animation consists of two parts:

The blue arc stretches from a point to a circle, and then shrinks from the circle to a point.

The parent node of the circle rotates with the circle

Code
html

<svg viewBox="25 25 50 50" class="box">
    <circle cx="50" cy="50" r="20" fill="none" class="circle"></circle>
</svg>

CSS
Default Style

.box {
    height: 200px;
    width: 200px;
    background: wheat;
}
.box .circle {
    stroke-width: 2;
    stroke: #409eff;
    stroke-linecap: round;
}

Add animation effects

/* Rotation animation */
@keyframes rotate {
    to {
        transform: rotate(1turn)
    }
}
/* Arc animation */
/* 125 is the circumference of the circle */
@keyframes circle {
    0% {
 /* State 1: Point */
        stroke-dasharray: 1 125;
        stroke-dashoffset: 0;
    }
    50% {
 /* State 2: Circle */
        stroke-dasharray: 120, 125;
        stroke-dashoffset: 0;
    }
    to {
 /* State 3: Point (shrinking in the direction of rotation) */
        stroke-dasharray: 120 125;
        stroke-dashoffset: -125px;
    }
}
.box {
  /* ...same as above*/
  animation: rotate 2s linear infinite;
}
.circle {
  /* ...same as above*/
  animation: circle 2s infinite;
}

Finally, remove the background

Online code demo https://jsbin.com/yarufoy/edit?html,css,output

This is the end of this article about how to achieve Element loading effect with pure HTML+CSS. For more relevant content about how to achieve loading with HTML+CSS, please search previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope you will support 123WORDPRESS.COM in the future!

<<:  Sample code for implementing the Olympic rings with pure HTML+CSS

>>:  Detailed explanation of HTML basics (Part 1)

Recommend

React implementation example using Amap (react-amap)

The PC version of React was refactored to use Ama...

How to enable or disable SSH for a specific user or user group in Linux

Due to your company standards, you may only allow...

CSS complete parallax scrolling effect

1. What is Parallax scrolling refers to the movem...

30 free high-quality English ribbon fonts

30 free high-quality English ribbon fonts for down...

JS realizes the effect of Baidu News navigation bar

This article shares the specific code of JS to ac...

Detailed explanation of the use of CSS pointer-events attribute

In front-end development, we are in direct contac...

Three ways to create a gray effect on website images

I’ve always preferred grayscale images because I t...

In-depth understanding of Linux load balancing LVS

Table of contents 1. LVS load balancing 2. Basic ...

Analysis of product status in interactive design that cannot be ignored in design

In the process of product design, designers always...

Q&A: Differences between XML and HTML

Q: I don’t know what is the difference between xml...

WeChat applet realizes the effect of shaking the sieve

This article shares the specific code of the WeCh...

Elementui exports data to xlsx and excel tables

Recently, I learned about the Vue project and cam...