css 3D立体动画效果怎么转这个骰子才能看到5

css 3D立体动画效果怎么转这个骰子才能看到5

 

<!DOCTYPE html>
<html lang="zh-CN">

<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效果认知:使用transform实现3D立方体</title>
    <style>
        * {
            margin: 0 auto;
            padding: 0;
        }

        body {
            background: #fffdfd;
        }

        h1 {
            text-align: center;
            color: #c16f6f;
        }

        pre {
            background-size: 800px 400px;
            padding: 20px;
            /* 文字大小 */
            font-size: 18px;
        }

        .wrap {
            background-image: url('xyz.png');
            background-repeat: no-repeat;
            background-size: 400px 200px;
            margin-top: 100px;
            perspective: 800px;
            perspective-origin: 50% 100px;
        }

        .cube {
            /* animation: move 10s linear infinite; */
            margin: 0 auto;
            position: relative;
            width: 200px;
            height: 200px;
            color: #fff;
            line-height: 200px;
            font-size: 10rem;
            text-align: center;
            transform-style: preserve-3d;
            -webkit-user-select: none;
            -moz-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .cube div {
            position: absolute;
            width: 200px;
            height: 200px;
            background-color: #d82929;
            opacity: 0.9;
            color: #e1e6d4;
            text-shadow:
                2px 2px 2px #ddd,
                4px 4px 2px #bbb,
                6px 6px 2px #999,
                8px 8px 2px #777,
                10px 10px 2px #555,
                12px 12px 2px #333,
                14px 14px 2px #111;
        }

        .front {
            -webkit-transform: translateZ(100px);
            -moz-transform: translateZ(100px);
            -o-transform: translateZ(100px);
            -ms-transform: translateZ(100px);
            transform: translateZ(100px);
        }

        .back {
            -webkit-transform: translateZ(-100px) rotateY(180deg);
            -moz-transform: translateZ(-100px) rotateY(180deg);
            -o-transform: translateZ(-100px) rotateY(180deg);
            -ms-transform: translateZ(-100px) rotateY(180deg);
            transform: translateZ(-100px) rotateY(180deg);
        }

        .left {
            -webkit-transform: translateX(-100px) rotateY(90deg);
            -moz-transform: translateX(-100px) rotateY(90deg);
            -o-transform: translateX(-100px) rotateY(90deg);
            -ms-transform: translateX(-100px) rotateY(90deg);
            transform: translateX(-100px) rotateY(90deg);
        }

        .right {
            -webkit-transform: translateX(100px) rotateY(-90deg);
            -moz-transform: translateX(100px) rotateY(-90deg);
            -o-transform: translateX(100px) rotateY(-90deg);
            -ms-transform: translateX(100px) rotateY(-90deg);
            transform: translateX(100px) rotateY(-90deg);
        }

        .top {
            -webkit-transform: translateY(-100px) rotateX(90deg);
            -moz-transform: translateY(-100px) rotateX(90deg);
            -o-transform: translateY(-100px) rotateX(90deg);
            -ms-transform: translateY(-100px) rotateX(90deg);
            transform: translateY(-100px) rotateX(90deg);
        }

        .bottom {
            -webkit-transform: translateY(100px) rotateX(-90deg);
            -moz-transform: translateY(100px) rotateX(-90deg);
            -o-transform: translateY(100px) rotateX(-90deg);
            -ms-transform: translateY(100px) rotateX(-90deg);
            transform: translateY(100px) rotateX(-90deg);
        }

        /* ---------------------------------------------------------- */
        @keyframes move {
            from {
                transform: rotateY(0deg) rotateZ(0deg);
            }

            to {
                transform: rotateY(360deg) rotateZ(360deg);
            }
        }

        /* -------------------------------------------------------- */
        pre+div+div {
            width: 400px;
            height: 400px;
            display: flex;
            justify-content: center;
            align-items: center;
            top: 100px;
            left: 1000px;
            position: absolute;
        }

        main {
            width: 200px;
            height: 200px;
            display: flex;
            transform-style: preserve-3d;
            animation: move 5s linear infinite;
        }

        main div {
            position: absolute;
            width: 200px;
            height: 200px;
            background-color: #edeff0;
            box-shadow: 0 0 10px #dfc3c3;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-wrap: wrap;
        }

        main div span {
            width: 50px;
            height: 50px;
            background-color: #f70a0a;
            border-radius: 50%;
            box-shadow: inset 0 4px 10px #fc6114, inset 0 4px 10px #51372cea;
        }

        main div:first-child {
            transform: translateZ(100px);
        }

        main div:nth-child(2) {
            transform: rotateY(90deg) translateZ(100px);
            flex-direction: column;
            justify-content: space-around;
        }

        main div:nth-child(3) {
            transform: rotateY(270deg) translateZ(100px);
            padding: 20px;
            box-sizing: border-box;
        }

        main div:nth-child(3) span:nth-child(1) {
            align-self: flex-start;
        }

        main div:nth-child(3) span:nth-child(3) {
            align-self: flex-end;
        }

        nav {
            width: 100%;
            height: 50px;
            display: flex;
            justify-content: space-around;
        }

        main div:nth-child(4) {
            transform: rotateY(180deg) translateZ(100px);
        }

        main div:nth-child(5) {
            transform: rotateX(90deg) translateZ(100px);
        }

        main div:nth-child(6) {
            transform: rotateX(270deg) translateZ(100px);
        }
    </style>
</head>

<body>
    <h1>3D效果</h1>
    <pre>
        transform 属性的值
            translate(x,y)、translateX(x)、translateY(y)、translateZ(z)、translate3d(x,y,z) 定义位置的移动距离
            scale(x,y)、scaleX(x)、scaleY(y)、scaleZ(z)、scale3d(x,yz) 定义元素的缩放比例
            rotate(angle)、rotateX(angle)、rotateY(angle)、rotateZ(angle)、rotate3d(x,y,z,angle) 定义元素的旋转度
            skew(x-angle,y-angle)、skewX(angle)、skewY(angle) 定义元素的倾斜度                     
        perspective 属性
              该属性用于激活一个3D空间,其子元素都会获得透明效果,一般 perspective 属性用于父元素。
            取值为 none 或 不设置,则为不激活3D空间
            取值越小,3D效果越明显,建议取值为元素的宽度
        transform-origin 属性
              用来改变元素原点的位置,取值:
            center 默认值 等价于( center center / 50% 50%)
            top/right/bottom/left
            transform-origin : x y z
</pre>
    <div class="wrap">
        <div class="cube">
            <div class="front">前</div>
            <div class="back">后</div>
            <div class="left">左</div>
            <div class="right">右</div>
            <div class="top">上</div>
            <div class="bottom">下</div>
        </div>
    </div>
    <!------------------------------------------------------ -->
    <div>
        <main>
            <div>
                <span></span>
            </div>
            <div><span></span>
                <span></span>
            </div>
            <div>
                <span></span>
                <span></span>
                <span></span>
            </div>
            <div>
                <nav><span></span>
                    <span></span>
                </nav>
                <nav><span></span>
                    <span></span>
                </nav>
            </div>
            <div>
                <nav><span></span>
                    <span></span>
                </nav>
                <nav><span></span>
                </nav>
                <nav><span></span>
                    <span></span>
                </nav>
            </div>
            <div>
                <nav><span></span>
                    <span></span>
                </nav>
                <nav><span></span>
                    <span></span>
                </nav>
                <nav><span></span>
                    <span></span>
                </nav>
            </div>
        </main>
    </div>
    <script>
        var mouseDown = false;
        var mousePoint = { x: 0, y: 0 };
        var cubeRotate = { x: 0, y: 0 };
        window.onload = function () {
            document.onmousedown = function (e) {
                mouseDown = true;
                mousePoint.x = e.pageX;
                mousePoint.y = e.pageY;
            }
            document.onmousemove = function (e) {
                if (mouseDown) {
                    let x = e.pageX - mousePoint.x;
                    let y = e.pageY - mousePoint.y;
                    cubeRotate.x += x / 30;
                    cubeRotate.y += y / 30;
                    document.querySelector('.cube').style = `transition:linear;transform:rotateX(${cubeRotate.x}deg) rotateY(${cubeRotate.y}deg)`;
                }
            }
            document.onmouseup = function (e) {
                mouseDown = false;
            }
        }
    </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/335525.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java和SpringBoot学习路线图

看了一下油管博主Amigoscode的相关视频&#xff0c;提到了Java和SpringBoot的学习路线&#xff0c;相关视频地址为&#xff1a; How To Master Java - Java for Beginners RoadmapSpring Boot Roadmap - How To Master Spring Boot 如下图所示&#xff1a; 当然关于Java和Spr…

SpringBoot 服务注册IP选择问题

问题 有时候我们明明A\B服务都注册成功了&#xff0c;但是相互之间就是访问不了&#xff0c;这大概率是因为注册时选择IP时网卡选错了&#xff0c;当我们本地电脑有多个网卡时&#xff0c;程序会随机选择一个有IPV4的网卡&#xff0c;然后读取IPv4的地址 比如我的电脑有3个网…

铸铁平台使用米字型布局的特点——河北北重

铸铁平台使用米字型布局的特点主要有以下几点&#xff1a; 结构稳定&#xff1a;米字型布局能够使得铸铁平台的结构更加稳定。因为米字型布局将平台的重力均匀分散到四个支撑角上&#xff0c;减小了平台的变形和挠曲程度&#xff0c;使得平台能够承受更大的荷载。 节省空间&am…

伊恩·斯图尔特《改变世界的17个方程》傅里叶变换笔记

主要是课堂的补充&#xff08;yysy&#xff0c;我觉得课堂的教育模式真有够无聊的&#xff0c;PPT、写作业、考试&#xff0c;感受不到知识的魅力。 它告诉我们什么&#xff1f; 空间和时间中的任何模式都可以被看作不同频率的正弦模式的叠加。 为什么重要&#xff1f; 频率分量…

【JavaEE进阶】 SpringBoot配置⽂件

文章目录 &#x1f340;配置⽂件的作⽤&#x1f334;SpringBoot配置⽂件&#x1f38b;配置⽂件的格式&#x1f384;properties配置⽂件&#x1f6a9;properties基本语法&#x1f6a9;读取配置⽂件&#x1f6a9;properties的缺点 &#x1f333;yml配置⽂件yml基本语法&#x1f6…

文件服务FTP

文章目录 一、FTP协议二、VSFTPD服务介绍基础配置匿名用户访问&#xff08;默认开启&#xff09;本地用户访问虚拟用户访问 一、FTP协议 FTP协议&#xff1a;文件传输协议&#xff08;File Transfer Protocol&#xff09; 协议定义了一个在远程计算机系统和本地计算机系统之间…

【Linux的基本指令】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 1、ls 指令 2、 pwd命令 3、cd 指令 4、touch指令 5、mkdir指令&#xff08;重要&#xff09; 6、rmdir指令 && rm 指令&#xff08;重要&#xff09;…

中使用 MOOTDX库读取通达信的数据,WIN+PYTHON,最新问题排查

M项目概述 - MOOTDXhttps://www.mootdx.com/zh-cn/latest/帮助文档https://www.mootdx.com/zh-cn/latest/​​​​​​​​​​​​​​​​​​​​​ 库的安装 注&#xff1a;我这的安装过程必须要ROOT权限&#xff0c;所以我用管理员的权限运行了控制台 pip install moot…

SEO文章自动生成发布网站工具【网站维护必备】

在SEO优化的过程中&#xff0c;高质量的原创文章是吸引搜索引擎和用户的关键。然而&#xff0c;对于许多站长和网站管理员而言&#xff0c;创作大量原创内容可能是一项繁琐而耗时的任务。为了解决这一难题&#xff0c;免费的147SEO软件应运而生&#xff0c;通过输入关键词或标题…

Red Hat Enterprise Linux 6.10 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

Jenkins环境配置篇-更换插件源

作为持续集成的利器 Jenkins 已经得到了广泛地应用&#xff0c;仅仅作为一个工具&#xff0c;Jenkins 已然有了 自己的生态圈&#xff0c;支持其的 plugin 更是超过 1300。在实际中如何使用以及如何更好地使用 jenkins&#xff0c;一直是大家在实践并讨论的。本系列文章将会从如…

【想要安利给所有人的开发工具】最强工具ChatGPT——分享一些使用经验

目录 &#x1f525;个人使用ChatGPT的经验 &#x1f525;如何使用ChatGPT 方法一 方法二 &#x1f525;&#x1f525;提问技巧分享 1、英语翻译员 2、面试官 3、javascript 控制台 4、Excel表格 5、作曲家 6、辩手 7、小说家 8、诗人 9、数学老师 10、网络安全…

【漏洞复现】Hikvision摄像头产品代码执行漏洞(CVE-2021-36260)

Nx01 产品简介 Hikvision&#xff08;海康威视&#xff09;是一家在中国颇具影响力的安防公司&#xff0c;其网络摄像头产品在市场上占据了相当大的份额。Hikvision的网络摄像头产品线非常丰富&#xff0c;涵盖了各种型号和功能&#xff0c;以满足不同用户的需求。 Nx02 漏洞描…

spring data mongo 在事务中,无法自动创建collection

spring data mongo 在事务中,无法自动创建collection org.springframework.dao.DataIntegrityViolationException: Write operation error on server xxx:30001. Write error: WriteError{code=263, message=Cannot create namespace xxx.xxxin multi-document transaction.…

分类预测 | Matlab实现KPCA-EBWO-SVM分类预测,基于核主成分分析和改进的白鲸优化算法优化支持向量机分类预测

分类预测 | Matlab实现KPCA-EBWO-SVM分类预测&#xff0c;基于核主成分分析和改进的白鲸优化算法优化支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-EBWO-SVM分类预测&#xff0c;基于核主成分分析和改进的白鲸优化算法优化支持向量机分类预测分类效果基本描述程序设计参…

第一部分 概述

目录 一、计算机网络在信息时代的作用 大众熟悉的三大类网络有 Internet 互连网与互联网的区别 可以从两种不同的方面来认识互联网&#xff1a; 互联网在生活中的地位 互联网 互联网负面影响 二、互联网的概述 网络的网络 基本概念 互连网基础结构发展的三个阶段 万维网www(…

【征服redis2】redis的事务介绍

目录 目录 1.redis事务介绍 2 事务出错的处理 3.Java如何使用redis事务 1.redis事务介绍 在前面我们介绍了redis的几种典型数据结构和应用&#xff0c;本文我们来看一下redis的事务问题。事务也是数据库的重要主题&#xff0c;熟悉关系型数据库的读者应该对事务比较了解&a…

全开源多城市同城信息小程序源码(Laravel 框架),同城分类信息发布便民小程序系统【非DZ】

同城生活分类信息小程序&#xff0c;人才招聘、房产二手 多城市地区同城分类信息发布&#xff0c;商家入驻等功能 小程序前后端代码开源无加密&#xff0c;可进行二次开发 【源码运行要求】 1、需要已认证的微信小程序 2、已备案的域名及服务器空间 推荐使用宝塔面板LinuxPHP…

为vs code配置unity开发环境

1.安装.NET.Core SDK 我们可以访问官网下载安装SDK及tool&#xff08;https://www.microsoft.com/net/download/core&#xff09;下载。有的系统只提供了执行文件&#xff0c;没有提供安装包&#xff0c;需要自己做一些配置。 下载好对应的版本就可以安装了&#xff0c;安装好以…

无人机打击激光器

激光器的应用非常广泛&#xff0c;涵盖了多个领域。以下是一些主要的激光器应用&#xff1a; 医疗领域&#xff1a;激光器在医疗行业中有着重要应用&#xff0c;比如用于激光手术&#xff08;如眼科手术&#xff09;、皮肤治疗、牙科治疗、肿瘤治疗等。 工业制造&#xff1a;在…
最新文章