使用css3新属性完成3D盒子旋转

本文介绍了一种使用CSS3实现的彩色盒子3D旋转效果。通过设置transform-style为preserve-3d并利用transform属性,作者创建了一个动态旋转的立方体。每个面都赋予不同的颜色,并通过动画实现了流畅的3D旋转。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


概述

在长时间的学习中感觉到了疲惫,想给自己带来点乐趣,今天查看css3的文档时无意间发现了这个属性,写个小domo让大家开心一下,废话不多说直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>彩色盒子旋转</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 500px;
            height: 500px;
            margin: 200px auto;
            border: 2px solid gray;
            /* 重要的是这个属性的添加 */
            transform-style:preserve-3d ;
            transform: rotateX(20deg) rotateY(20deg);
            position: relative;
            animation: donghua 2s linear infinite;
        }
        .box>div{
            width: 200px;
            height: 200px;
            line-height: 200px;
            text-align: center;
            position: absolute;
            top: 50%;
            margin-top: -100px;
            left: 50%;
            margin-left: -100px;
            color: #fff;
            font-size: 25px;
        }
        .box1{
            background-color: red;
            transform: translateX(100px) rotateY(90deg);
        }
        .box2{
            background-color: orange;
            transform: translateY(100px) rotateX(90deg);
        }
        .box3{
            background-color: yellow;
            transform: translateZ(100px);
        }
        .box4{
            background-color: green;
            transform: translateZ(-100px);
        }
        .box5{
            background-color: aqua;
            transform: translateY(-100px) rotateX(-90deg);
        }
        .box6{
            background-color: blue;
            transform: translateX(-100px) rotateY(-90deg);
        }
        @keyframes donghua{
            0%{
                transform: rotateX(20deg) rotateY(20deg);
            }
            100%{
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
    </style>
</head>
<body>
    <!--这是拼凑的盒子,将六个平面进行一点位移,让它们基于一个平面拼成一个完整盒子,移动基准面这样就完成了盒子的3D旋转-->
    <div class="box">
        <div class="box1">1</div>
        <div class="box2">2</div>
        <div class="box3">3</div>
        <div class="box4">4</div>
        <div class="box5">5</div>
        <div class="box6">6</div>
    </div>
</body>
</html>

代码段其实很简单就是对transform-style属性赋值了preserve-3d ;令它触发了3D效果,搭建了3D旋转舞台,要看见3D效果就需要给父元素添加3D旋转舞台,3D是个立体空间,大家有空间的概念会比较容易理解,就是平面的x,y轴上加了一个z轴。通过位移六个小盒子让它们到达合适的位置,给大盒子添加动画即可。

效果如下:

彩色盒子旋转 - Google Chrome 2022-10-15 16-11-32


总结

这其实就是对css3动画属性的其中一个应用,希望大家学习时能找到学习的乐趣,加油!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值