基于CSS3制作专属可自由旋转的立方体

一、代码区域

1.1 css3代码区域

css 复制代码
    <style>
        * {
            padding: 0;
            margin: 0;
            list-style: none;
        }

        /* 1) 定义动画 */
        @keyframes loop {
            0% {
                transform: rotateX(348deg) rotateY(67deg) rotateZ(95deg);
            }

            50% {
                transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
            }


            100% {
                transform: rotateX(348deg) rotateY(67deg) rotateZ(95deg);
            }
        }

        ul {
            /* 父元素 */
            width: 200px;
            height: 200px;
            /* background-color: #ccc; */
            margin: 200px auto;
            position: relative;
            /* 设置成3d容器 */
            transform-style: preserve-3d;
            /* 设置角度旋转 */
            /* transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); */
            transform: rotateX(348deg) rotateY(67deg) rotateZ(95deg);

            /* 2) 使用动画 */
            animation: loop 8s linear infinite;
        }

        ul li {
            width: 200px;
            height: 200px;
            position: absolute;
            top: 0;
            left: 0;
            text-align: center;
            line-height: 200px;
            font-size: 20px;
            user-select: none;
        }

        ul li:nth-child(1) {
            background-color: rgba(255, 0, 0, .5);
            /* 围绕X旋转90° 再位移盒子尺寸的一半 */
            transform: rotateX(90deg) translateZ(100px);
        }

        ul li:nth-child(2) {
            background-color: rgba(255, 255, 0, .5);
            transform: rotateX(90deg) translateZ(-100px);
        }

        ul li:nth-child(3) {
            background-color: rgba(255, 0, 255, .5);
            transform: rotateY(90deg) translateZ(100px);
        }

        ul li:nth-child(4) {
            background-color: rgba(0, 255, 0, .5);
            transform: rotateY(90deg) translateZ(-100px);
        }

        ul li:nth-child(5) {
            background-color: rgba(0, 0, 255, .5);
            transform: translateZ(100px);
        }

        ul li:nth-child(6) {
            background-color: rgba(0, 255, 255, .5);
            transform: translateZ(-100px);
        }
    </style>

1.2 html代码区域

html 复制代码
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>

二、代码效果展示

三、个人总结:

该功能的实现主要利用了css3中的动画,过渡属性,转换属性以及类名选择器,其中旋转的参数大家可自行修改,便于更好地理解该功能的实现。

注: 博主每天记录自己所学,如有写的不好之处,希望您能不吝赐教,给我一些关于这个项目的意见和建议。各位的宝贵意见将对我产生深远的影响,我将认真倾听并尽力改进。谢谢各位~~

相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ew452182 小时前
ElementUI表格表头自定义添加checkbox,点击选中样式不生效
前端·javascript·elementui
suibian52352 小时前
AI时代:前端开发的职业发展路径拓宽
前端·人工智能
Moon.92 小时前
el-table的hasChildren不生效?子级没数据还显示箭头号?树形数据无法展开和收缩
前端·vue.js·html
垚垚 Securify 前沿站2 小时前
深入了解 AppScan 工具的使用:筑牢 Web 应用安全防线
运维·前端·网络·安全·web安全·系统安全
工业甲酰苯胺5 小时前
Vue3 基础概念与环境搭建
前端·javascript·vue.js
mosquito_lover16 小时前
怎么把pyqt界面做的像web一样漂亮
前端·python·pyqt
柴柴的小记9 小时前
前端vue引入特殊字体不生效
前端·javascript·vue.js
柠檬豆腐脑9 小时前
从前端到全栈:新闻管理系统及多个应用端展示
前端·全栈
bin91539 小时前
DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
前端·javascript·vue.js·ecmascript·deepseek