CSS3 creates 3D cube loading effects

CSS3 creates 3D cube loading effects

Brief Description

This is a CSS3 cool 3D cube preloading effect. This special effect uses simple HTML elements and CSS3 codes to construct an animation effect of several cubes moving continuously, which is suitable for page loading effects.

Code Analysis

Import the following files into your HTML file.

<link rel="stylesheet" type="text/css" href="css/bootstrap-grid.min.css" />

HTML Structure

<div class="demo" style="min-height:350px;">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="loader">
<div class="box">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
<div class="box">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
<div class="box">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
<div class="box">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
</div>
</div>
</div>
</div>
</div>

CSS Styles

.loader{
                    --size: 32px;
                    --duration: 800ms;
                    width: 96px;
                    height: 64px;
                    margin: 50px auto;
                    transform-style: preserve-3d;
                    transform-origin: 50% 50%;
                    transform: rotateX(60deg) rotateZ(45deg) rotateY(0deg) translateZ(0px);
                    position: relative;
                }
                .loader .box{
                    width: 32px;
                    height: 32px;
                    transform-style: preserve-3d;
                    position: absolute;
                    top: 0;
                    left: 0;
                }
                .loader .box:nth-child(1){
                    transform: translate(100%, 0);
                    animation: box1 800ms linear infinite;
                }
                .loader .box:nth-child(2){
                    transform: translate(0, 100%);
                    animation: box2 800ms linear infinite;
                }
                .loader .box:nth-child(3){
                    transform: translate(100%, 100%);
                    animation: box3 800ms linear infinite;
                }
                .loader .box:nth-child(4){
                    transform: translate(200%, 0);
                    animation: box4 800ms linear infinite;
                }
                .loader .box > div{
                    --translateZ: calc(var(--size) / 2);
                    --rotateY: 0deg;
                    --rotateX: 0deg;
                    background: #5c8df6;
                    width: 100%;
                    height: 100%;
                    transform: rotateY(var(--rotateY)) rotateX(var(--rotateX)) translateZ(var(--translateZ));
                    position: absolute;
                    top:auto;
                    right: auto;
                    bottom: auto;
                    left: auto;
                }
                .loader .box > div:nth-child(1){
                    top: 0;
                    left: 0;
                }
                .loader .box > div:nth-child(2){
                    background: #145af2;
                    right: 0;
                    --rotateY: 90deg;
                }
                .loader .box > div:nth-child(3){
                    background: #447cf5;
                    --rotateX: -90deg;
                }
                .loader .box > div:nth-child(4){
                    background: #dbe3f4;
                    top: 0;
                    left: 0;
                    --translateZ: calc(var(--size) * 3 * -1);
                }
                @keyframes box1{
                    0%, 50%{ transform: translate(100%, 0); }
                    100%{ transform: translate(200%, 0); }
                }
                @keyframes box2{
                    0%{ transform: translate(0, 100%); }
                    50%{ transform: translate(0, 0); }
                    100%{ transform: translate(100%, 0); }
                }
                @keyframes box3{
                    0%, 50%{ transform: translate(100%, 100%); }
                    100%{ transform: translate(0, 100%); }
                }
                @keyframes box4{
                    0%{ transform: translate(200%, 0); }
                    50%{ transform: translate(200%, 100%); }
                    100%{ transform: translate(100%, 100%); }
                }

The above is the details of how to use CSS3 to create 3D cube loading effects. For more information about CSS3 loading effects, please pay attention to other related articles on 123WORDPRESS.COM!

<<:  CSS to change the size (width, height) of the image when the mouse passes over the image hyperlink

>>:  About the layout method of content overflow in table

Recommend

Solve the black screen problem after VMware installs Linux system and starts

1. Installation environment 1. HUAWEI mate x cpu ...

Vue implements drag and drop or click to upload pictures

This article shares the specific code of Vue to a...

How to install docker on ubuntu20.04 LTS

Zero: Uninstall old version Older versions of Doc...

Linux general java program startup script code example

Although the frequency of starting the shell is v...

Ten important questions for learning the basics of Javascript

Table of contents 1. What is Javascript? 2. What ...

Docker Basics

Preface: Docker is an open source application con...

Vue implements div wheel zooming in and out

Implement div wheel zooming in and out in Vue pro...

Html Select uses the selected attribute to set the default selection

Adding the attribute selected = "selected&quo...

Understanding and usage scenarios of ES6 extension operators

Table of contents 1. Replace the apply method, ge...

How to implement parent-child component communication with Vue

Table of contents 1. Relationship between parent ...

Sample code for achieving small triangle border effect with pure CSS3+DIV

The specific code is as follows: The html code is...

Deep understanding of JavaScript syntax and code structure

Table of contents Overview Functionality and read...

HTML tag default style arrangement

html, address,blockquote,body, dd, div,dl, dt, fie...