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

news2024/9/22 4:07:53

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.coloradmin.cn/o/1398418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】unordered_map,unordered_set模拟实现

unordered_map&#xff0c;unordered_set模拟实现 插入普通迭代器const迭代器unordered_map的[ ]接口实现查找修改哈希桶完整代码unordered_map完整代码unordered_set完整代码 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 上一篇文章我们把unordered_map和u…

阿里云服务器怎么样?阿里云服务器优势、价格及常见问题

阿里云服务器ECS英文全程Elastic Compute Service&#xff0c;云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务&#xff0c;阿里云提供多种云服务器ECS实例规格&#xff0c;如ECS经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等&#xff0c;阿里云服务器网al…

中仕教育:三支一扶的优势有哪些?

"三支"指的是支农、支教、支医&#xff0c;"一扶"则是扶持基层。这是一项为了解决农村地区教育、医疗和农业发展问题&#xff0c;同时提供一定的就业保障的政策&#xff0c;大专学历即可报考。 "三支一扶"有哪些优势? 参与"三支一扶&quo…

《WebKit 技术内幕》之四(3): 资源加载和网络栈

3. 网络栈 3.1 WebKit的网络设施 WebKit的资源加载其实是交由各个移植来实现的&#xff0c;所以WebCore其实并没有什么特别的基础设施&#xff0c;每个移植的网络实现是非常不一样的。 从WebKit的代码结构中可以看出&#xff0c;网络部分代码的确比较少的&#xff0c;它们都在…

【Web】CTFSHOW 文件上传刷题记录(全)

期末考完终于可以好好学ctf了&#xff0c;先把这些该回顾的回顾完&#xff0c;直接rushjava&#xff01; 目录 web151 web152 web153 web154-155 web156-159 web160 web161 web162-163 web164 web165 web166 web167 web168 web169-170 web151 如果直接上传php文…

WordPress怎么去除jquery和CSS静态文件链接中的版本号?附2种方法

我们很多WordPress网站默认情况下所加载的jquery和CSS静态文件链接中都会带有相应的版本号&#xff0c;比如boke112百科使用的YIA主题&#xff0c;加载CSS文件时就会在链接地址后面加上?ver2.7&#xff0c;即是style.css?ver2.7 除了CSS文件会加上版本号外&#xff0c;加载主…

SpringCloud之Nacos的学习、快速上手

1、什么是Nacos Nacos是阿里的一个开源产品&#xff0c;是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案&#xff0c;用来实现配置中心和服务注册中心。 Nacos 快速开始 2、安装运行nacos nacos下载地址 下载地址: https://github.com/alibaba/nacos/rel…

go语言(一)----声明变量

package mainimport ("fmt""time" )func main() {fmt.Print("hello go!")time.Sleep(1 * time.Second)}运行后&#xff0c;结果如下&#xff1a; 1、golang表达式中&#xff0c;加&#xff1b;和不加&#xff1b;都可以 2、函数的{和函数名一…

【C++ 记忆站】内联函数

文章目录 一、概念二、特性1、inline是一种以空间换时间的做法如果编译器将函数当成内联函数处理在编译阶段,会用函数体替换函数调用2、inline对于编译器而言只是一个建议若一个函数代码很长则编译器不会将它变成内联3、一般来说,函数代码在10行及以内时这时编译器会将它优化为…

将 SQL Server 2022 数据库备份到 MinIO

Microsoft 在将 S3 连接器和 Polybase 添加到 SQL Server 2022 时取得了重大飞跃。因此&#xff0c;企业可以利用他们保存到对象存储中的大量数据&#xff0c;并使用它来丰富 SQL Server 表。他们还可以利用对象存储来备份 SQL Server&#xff0c;这是开放性和云原生灵活性的又…

通达信主图指标修改为文华公式源码

最近有几位朋友说只用过通达信的软件&#xff0c;咨询有没有通达信指标&#xff0c;我做期货一直是用文华的软件&#xff0c;今天有一位炒股的朋友拿着通达信的指标源码让帮忙修改成文华的&#xff0c;经过他同意分享给大家。 这位朋友是用于辅助股票技术分析&#xff0c;建议做…

【llm 微调code-llama 训练自己的数据集 一个小案例】

这也是一个通用的方案&#xff0c;使用peft微调LLM。 准备自己的数据集 根据情况改就行了&#xff0c;jsonl格式&#xff0c;三个字段&#xff1a;context, answer, question import pandas as pd import random import jsondata pd.read_csv(dataset.csv) train_data data…

深度解析 Compose 的 Modifier 原理 -- DrawModifier

" Jetpack Compose - - Modifier 系列文章 " &#x1f4d1; 《 深入解析 Compose 的 Modifier 原理 - - Modifier、CombinedModifier 》 &#x1f4d1; 《 深度解析 Compose 的 Modifier 原理 - - Modifier.composed()、ComposedModifier 》 &#x1f4d1; 《 深入解…

牛客小白月赛86 解题报告 | 珂学家 | 最大子数组和变体 + lazy线段树动态区间树

前言 整体评价 终于回归小白月赛的内核了&#xff0c;希望以后也继续保持&#xff0c;_. A. 水盐平衡 思路: 模拟 题目保证没有浓度相等的情况 盐度 a/b&#xff0c; c/d 的比较关系 演变为 ad, bc 两者的大小关系 #include <bits/stdc.h>using namespace std;int …

【北京】买套二手房需要多少钱?

上次我们看了苏州和上海的二手房&#xff0c;这次我们一起来看下北京的二手房价格如何。 数据来源 数据来自贝壳二手房&#xff0c;每个区最多获取了3千条房源信息&#xff0c;数据共计4万条左右 对数据感兴趣的朋友&#xff0c;公众号后台发送北京二手房获取数据文件 各区房…

面试之Glide如何绑定Activity的生命周期

Glide绑定Activity生命周期 Glide.with() 下面都是它的重载方法&#xff0c;Context&#xff0c;Activity&#xff0c;FragmentActivity, Fragment, android.app.Fragment fragment,View都可以作为他的参数&#xff0c;内容大同小异&#xff0c;都是先getRetriever&#xff0…

【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]

阅读导航 引言一、简介二、成员函数三、使用示例四、C模拟实现五、std::shared_ptr的线程安全问题六、总结温馨提示 引言 在 C 动态内存管理中&#xff0c;除了 auto_ptr 和 unique_ptr 之外&#xff0c;还有一种智能指针 shared_ptr&#xff0c;它可以让多个指针共享同一个动…

关于大模型学习中遇到的3

来源&#xff1a;网络 Embedding模型 随着大型语言模型的发展&#xff0c;以ChatGPT为首&#xff0c;涌现了诸如ChatPDF、BingGPT、NotionAI等多种多样的应用。公众大量地将目光聚焦于生成模型的进展之快&#xff0c;却少有关注支撑许多大型语言模型应用落地的必不可少的Embed…

STM32407用汇顶的GT911触摸芯片调试实盘

这个配置很关键 代码 #include "stm32f4xx.h" #include "GT9147.h" #include "Touch.h" #include "C_Touch_I2C.h" #include "usart.h" #include "delay.h" #include "LCD.h" #incl…

HarmonyOS 页面跳转控制整个界面的转场动画

好 本文 我们来说 页面间的转场动画 就是 第一个界面到另一个界面 第一个界面的退场和第二个界面的进场效果 首先 我这里 创建了两个页面文件 Index.ets和AppView.ets index组件 编写代码如下 import router from "ohos.router" Entry Component struct Index {b…