CSS3 3D酷炫立方体变换动画的实现


Posted in HTML / CSS onMarch 26, 2019

我爱撸码,撸码使我感到快乐!

大家好,我是Counter,本章微博主要利用了CSS3的一些新特性,

主要用到关键帧来使3D图形运动起来,涉及到了一些抽象的思想,立体的想象。

先给大家看看完成的效果,代码也不是很难,每行代码都给到了详细注释,纯CSS,没有用到JS,CSS3不错。

效果如下:

CSS3 3D酷炫立方体变换动画的实现

每一行基本都有注释,就不重复说了,代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>3D旋转</title>
    <style>
        /* 给最外层父级设置景深,让里面的元素有立体的空间,并且设置宽高 */
        .wrapper {
            /* 景深600像素 */
            perspective: 500px;
            /* 设置margin距离上面100px,左右自适应,下面0 */
            margin: 100px auto 0;
            width: 200px;
            height: 200px;
            /* border: 1px solid black; */
        }
        
        .box {
            /* 设置相对定位好让子元素相对于自己定位 */
            position: relative;
            /* 给item设置保留3D效果,如果没有设置里面的元素将不会呈现3D效果 */
            transform-style: preserve-3d;
            width: 200px;
            height: 200px;
            /* move为设置的关键帧,运动8秒,匀速运动,无限次(各个参数代表的含义) */
            animation: move 8s linear infinite;
        }

        /* 选择所有开头带有item的元素,使其全部定位到父级所在的位置 */
        div[class^="item"] {
            position: absolute;
            top: 0;
            left: 0;
            width: 200px;
            height: 200px;
            /* 使文本左右对齐 */
            text-align: center;
            /* 使文本上下对齐 */
            line-height: 200px;
        }

        /* 立方体有六面,每个item1~6代表每一面,此时里面的item1~6具有三条轴,x,y,z */
        /* x轴即是你电脑屏幕宽度的那条轴,从左到右。y轴即是你电脑屏幕高度的那条轴,从上到下。z轴即是你眼睛垂直看电脑屏幕的那条轴,方向从电脑屏幕到你的眼睛*/
        /* 设置第一面 */
        .item1 {  
            /* 沿z轴向你眼睛方向移动100px */
            transform: translateZ(100px);
            /* 设置背景颜色,最后一个参数为透明度设置为0.6 */
            background-color: rgba(255, 0, 0, 0.6);
        }
        /* 设置第二面 */
        .item2 {
            /* 沿z轴向里移动100px即为-100px */
            transform: translateZ(-100px);
            background-color: rgba(72, 42, 245, 0.6);
        }
        /* 设置第三面 */
        .item3 {
            /* 沿x轴旋转90度,然后再向z轴移动100px(deg在这里表示度的意思) */
            transform: rotateX(90deg) translateZ(100px);
            background-color: rgba(217, 230, 36, 0.6);
        }
        /* 设置第四面 */
        .item4 {
            /* 沿x轴旋转90度,然后再向z轴移动-100px */
            transform: rotateX(90deg) translateZ(-100px);
            background-color: rgba(58, 7, 51, 0.6);
        }
        /* 设置第五面 */
        .item5 {
            /* 沿y轴旋转90度,然后再向z轴移动-100px */
            transform: rotateY(90deg) translateZ(-100px);
            background-color: rgba(241, 142, 75, 0.6);
        }
        /* 设置第六面 */
        .item6 {
            /* 沿y轴旋转90度,然后向z轴移动100px */
            transform: rotateY(90deg) translateZ(100px);
            background-color: rgba(125, 178, 238, 0.6);
        }

        /* 设置关键帧让box容器旋转起来,分别沿x,y,z轴从0旋转360度 */
        @keyframes move {
            0% {
                transform: rotateX(0) rotateY(0) rotateZ(0);
            }
            100% {
                transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="box">
            <div class="item1">1</div>
            <div class="item2">2</div>
            <div class="item3">3</div>
            <div class="item4">4</div>
            <div class="item5">5</div>
            <div class="item6">6</div>
        </div>
    </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3感应鼠标的背景闪烁和图片缩放动画效果
May 14 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
Jul 14 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
Mar 01 HTML / CSS
IE9下html5初试小刀
Sep 21 HTML / CSS
Javascript 高级手势使用介绍
Apr 21 HTML / CSS
HTML5样式控制示例代码
Nov 27 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
Sep 17 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
Jan 24 HTML / CSS
浅析HTML5 meta viewport参数
Oct 28 HTML / CSS
html,css,javascript是怎样变成页面的
May 07 HTML / CSS
CSS3之2D与3D变换的实现方法
Jan 28 #HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 #HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 #HTML / CSS
简单几步用纯CSS3实现3D翻转效果
Jan 17 #HTML / CSS
css3实现3D文本悬停改变效果的示例代码
Jan 16 #HTML / CSS
css3实现元素环绕中心点布局的方法示例
Jan 15 #HTML / CSS
CSS3改变浏览器滚动条样式
Jan 04 #HTML / CSS
You might like
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python中threading超线程用法实例分析
2015/05/16 Python
python下MySQLdb用法实例分析
2015/06/08 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
selenium+python环境配置教程详解
2019/05/28 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
教师个人读书活动总结
2014/07/08 职场文书
学生检讨书范文
2015/01/27 职场文书
法院个人总结
2015/03/03 职场文书
年度考核表个人总结
2015/03/06 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏