HTML&CSS:纯CSS实现3D立方体二维码旋转特效

这段代码实现了一个动态旋转的立方体,每个面都带有独特的二维码背景图案。通过CSS的3D变换和动画功能,创建了一个视觉上引人入胜的效果,适用于展示CSS的3D和动画能力。


大家复制代码时,可能会因格式转换出现错乱,导致样式失效。建议先少量复制代码进行测试,若未能解决问题,私信回复源码两字,我会发送完整的压缩包给你。

演示效果

HTML&CSS

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>公众号关注:前端Hardy</title>
    <style>
        cube {
            --s: 243px;
            --hs: calc(var(--s) / 2);
            display: block;
            width: var(--s);
            height: var(--s);
            transform-style: preserve-3d;
            will-change: transform;
            animation: r 15s linear infinite;
        }

        side {
            position: absolute;
            width: 100%;
            height: 100%;

            --sq: conic-gradient(from 270deg at calc(100% / 3) calc(100% / 3),
                    #fff 90deg, transparent 0);

            background:
                var(--sq) calc(var(--s) / 3) calc(var(--s) / 3) / 100% 100%,
                var(--sq) calc(100% / 6) calc(100% / 6) / calc(100% / 3) calc(100% / 3),
                var(--sq) calc(100% / 6) calc(100% / 6) / calc(100% / 9) calc(100% / 9),
                var(--sq) calc(100% / 6) calc(100% / 6) / calc(100% / 27) calc(100% / 27),
                var(--sq) calc(100% / 6) calc(100% / 6) / calc(100% / 81) calc(100% / 81);

            background-color: #000;
            background-blend-mode: difference;
        }

        side:nth-child(1) {
            transform: translateZ(var(--hs))
        }

        side:nth-child(2) {
            transform: translateZ(calc(-1 * var(--hs)));
        }

        side:nth-child(3) {
            transform: rotateY(90deg) translateZ(var(--hs))
        }

        side:nth-child(4) {
            transform: rotateY(-90deg) translateZ(var(--hs))
        }

        side:nth-child(5) {
            transform: rotateX(90deg) translateZ(var(--hs))
        }

        side:nth-child(6) {
            transform: rotateX(-90deg) translateZ(var(--hs))
        }

        @keyframes r {
            100% {
                transform: rotateX(1turn)rotateY(1turn) rotateZ(1turn)
            }
        }

        html,
        body {
            margin: 0;
            width: 100%;
            height: 100%;
            display: grid;
            place-items: center;
            overflow: hidden;
            background: #000;
            perspective: 1000px;
        }

        body:after {
            content: '';
            position: absolute;
            background: #212121;/* radial-gradient(circle at 50% 50%, #FF9800 1%, #673AB7); */
            width: 100%;
            height: 100%;
            mix-blend-mode: lighten;
        }
    </style>
</head>

<body>
    <cube>
        <side></side>
        <side></side>
        <side></side>
        <side></side>
        <side></side>
        <side></side>
    </cube>
</body>

</html>

HTML 结构

  • cube:定义一个立方体容器,用于包裹六个面side,并通过CSS实现3D旋转效果。
  • side:定义立方体的每个面,共六个面,分别对应立方体的前后左右上下六个方向。

CSS 样式

  • cube:定义立方体的样式,包括尺寸、3D变换样式和动画。
  • side:定义立方体每个面的样式。
  • side:nth-child(1):定义第一个面的3D变换,将其推向立方体的正前方。
  • side:nth-child(2):定义第二个面的3D变换,将其推向立方体的正后方。
  • side:nth-child(3):定义第三个面的3D变换,将其绕Y轴旋转90度并推向立方体的右侧。
  • side:nth-child(4):定义第四个面的3D变换,将其绕Y轴旋转-90度并推向立方体的左侧。
  • side:nth-child(5):定义第五个面的3D变换,将其绕X轴旋转90度并推向立方体的顶部。
  • side:nth-child(6):定义第六个面的3D变换,将其绕X轴旋转-90度并推向立方体的底部。
  • @keyframes r:定义立方体的旋转动画。在100%时,立方体绕X、Y、Z轴各旋转一圈。
  • html, body:设置页面的整体布局。

各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!

相关推荐
2501_920931707 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
东东5169 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino9 小时前
图片、文件的预览
前端·javascript
2501_9209317010 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
layman052811 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔11 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李11 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN11 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒11 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库11 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css