CSS3制作3D立方体loading特效


Posted in HTML / CSS onNovember 09, 2020

简要说明

这是一款css3炫酷3D立方体预加载loading特效。该特效通过简单的HTML元素和CSS3代码,构建几个立方体不停运动的动画特效,适用于做页面的loading效果。

CSS3制作3D立方体loading特效

代码解析

在HTML文件中引入下面的文件。

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

HTML结构

<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样式

.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%); }
                }

以上就是CSS3制作3D立方体loading特效的详细内容,更多关于CSS3 loading特效的资料请关注三水点靠木其它相关文章!

HTML / CSS 相关文章推荐
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
canvas像素画板的实现代码
Nov 21 HTML / CSS
html5 application cache遇到的严重问题
Dec 26 HTML / CSS
HTML5的语法变化介绍
Aug 13 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
3种方式实现瀑布流布局小结
Sep 05 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
Apr 08 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
Apr 29 HTML / CSS
HTML5开发动态音频图的实现
Jul 02 HTML / CSS
wordpress添加Html5的表单验证required方法小结
Aug 18 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
Feb 15 HTML / CSS
CSS3实现莲花绽放的动画效果
Nov 06 #HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 #HTML / CSS
CSS实现进度条和订单进度条的示例
Nov 05 #HTML / CSS
一篇文章带你学习CSS3图片边框
Nov 04 #HTML / CSS
CSS3实现时间轴特效
Nov 02 #HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
Nov 02 #HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 #HTML / CSS
You might like
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
详解appium+python 启动一个app步骤
2017/12/20 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Django单元测试工具test client使用详解
2019/08/02 Python
django将数组传递给前台模板的方法
2019/08/06 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
PyTorch的torch.cat用法
2020/06/28 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
应聘面试自我评价
2014/01/24 职场文书
经营管理策划方案
2014/05/22 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
承诺书范本
2015/01/21 职场文书
小学庆六一主持词
2015/06/30 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电