纯HTML+CSS实现3D空间正方体旋转

以下是一个使用纯HTML和CSS实现的3D空间正方体旋转效果。

一、效果

效果特点:

  1. 半透明发光正方体进行多轴旋转

  2. 核心光点脉冲效果

  3. 正方体边框的霓虹光效

  4. 多重阴影叠加的立体效果

实现原理:

  1. 使用CSS 3D变换实现正方体结构

  2. 通过preserve-3d保持三维空间关系

  3. 组合使用rotateX/Y/Z实现多轴旋转

  4. 使用box-shadow实现发光效果

可以通过调整以下参数自定义效果:

  • 修改cube的尺寸调整正方体大小

  • 调整animation-duration改变旋转速度

  • 修改border和background颜色改变主题色

  • 调整box-shadow参数改变发光强度


二、代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        body {
            margin: 0;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            background: #000;
            overflow: hidden;
        }


        /* 旋转立方体容器 */
        .cube-container {
            position: relative;
            width: 300px;
            height: 300px;
            transform-style: preserve-3d;
            animation: cubeRotate 20s infinite linear;
            z-index: 2;
        }

        /* 立方体公共样式 */
        .cube {
            position: absolute;
            width: 200px;
            height: 200px;
            background: rgba(0, 255, 255, 0.1);
            border: 2px solid #0ff;
            transform-style: preserve-3d;
            box-shadow: 0 0 40px #0ff;
        }

        /* 立方体各面 */
        .front { transform: translateZ(100px); }
        .back { transform: translateZ(-100px); }
        .top { transform: rotateX(90deg) translateZ(100px); }
        .bottom { transform: rotateX(-90deg) translateZ(100px); }
        .left { transform: rotateY(-90deg) translateZ(100px); }
        .right { transform: rotateY(90deg) translateZ(100px); }

        /* 核心光点 */
        .core {
            position: absolute;
            width: 20px;
            height: 20px;
            background: #0ff;
            border-radius: 50%;
            filter: blur(15px);
            animation: pulse 2s infinite;
        }

        /* 动画定义 */
        @keyframes cubeRotate {
            0% { transform: rotateX(0) rotateY(0) rotateZ(0); }
            100% { transform: rotateX(360deg) rotateY(720deg) rotateZ(360deg); }
        }

        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.5); }
        }
    </style>
</head>
<body>
    <div class="cube-container">
        <div class="cube front"></div>
        <div class="cube back"></div>
        <div class="cube top"></div>
        <div class="cube bottom"></div>
        <div class="cube left"></div>
        <div class="cube right"></div>
        <div class="core"></div>
    </div>
</body>
</html>

一些重点css属性:

① transform-style: preserve-3d;

transform--style属性指定嵌套元素是怎样在三维空间中呈现。

描述
flat 表示所有子元素在2D平面呈现。
preserve-3d 表示所有子元素在3D空间中呈现。

②@keyframes cubeRotate {

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

100% { transform: rotateX(360deg) rotateY(720deg) rotateZ(360deg); }

}

动画围绕着X轴、Y轴、Z轴同时旋转实现更炫酷的旋转效果。

相关推荐
我是华为OD~HR~栗栗呀44 分钟前
华为OD-23届-测试面经
java·前端·c++·python·华为od·华为·面试
β添砖java2 小时前
vivo响应式官网
前端·css·html·1024程序员节
web打印社区7 小时前
使用React如何静默打印页面:完整的前端打印解决方案
前端·javascript·vue.js·react.js·pdf·1024程序员节
喜欢踢足球的老罗7 小时前
[特殊字符] PM2 入门实战:从 0 到线上托管 React SPA
前端·react.js·前端框架
小光学长7 小时前
基于Vue的课程达成度分析系统t84pzgwk(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
Baklib梅梅8 小时前
探码科技再获“专精特新”认定:Baklib引领AI内容管理新方向
前端·ruby on rails·前端框架·ruby
南方以南_8 小时前
Chrome开发者工具
前端·chrome
YiHanXii8 小时前
this 输出题
前端·javascript·1024程序员节
楊无好8 小时前
React中ref
前端·react.js
程琬清君8 小时前
vue3 confirm倒计时
前端·1024程序员节