前端的一些3D旋转效果和实例——table切换

首先,讲一下有关3D旋转的属性:

                transform用于设置变形,有以下参数

                1、translate(x,y)  2D的设置移动距离,x表示沿x轴的距离,y表示沿y轴的距离(y轴是向下为正)不写代表0

                    translateX(x)  translateY(y)    translateZ(z)

                2、translate3d(x,y,z)  3D的,

                3、scale(x,y)   元素缩放,是比例,省略y时,会默认y跟x相同

                    scale3d(x,y,z)  3d效果上的缩放

                    也可以单独设置,跟translate相同

                4、rotate(angle)  2d旋转,沿中心点顺时针旋转

                    rotate3d(x,y,z,angle)   3d旋转

                    rotateX(angle)    rotateY(angle)  rotateZ(angle)

                5、skew(x-angle,y-angle)    定义沿着 X 和 Y 轴的 2D 倾斜转换。

                    skewX(angle)   skewY(angle)

                变形相关

                1、设置变形中心点

                    transform-origin:right bottom;   表示绕着右下旋转,第一个代表水平方向,第二个代表垂直方向,也可以是具体的数字(50px,50px)

                2、3D效果

                    perspective 3D透视效果  作用于父级元素

                    transfrom-style:preserve-3d 3D嵌套效果

                    backface-visibility:    设置背面是否可见,为hidden时不可见,visible表示可见(默认值)

实例——table切换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* input {
            width: 100px;
            height: 100px;
        } */
        /* label{
            width: 100px;
            height: 100px;
        } */
        * {
            padding: 0;
            margin: 0;
        }

        body {
            height: 100vh;
            background: gray;
        }

        .container {
            width: 650px;
            height: 334px;
            margin: 150px auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            /* 设置视距 */
            perspective: 1500px;
        }

        .container .tab_body {
            width: 500px;
            height: 300px;
            background: olive;
            position: relative;
            /* 开启3D效果 */
            transform-style: preserve-3d;

            transform: rotateY(48deg);
            transform: rotateX(0px);
            /* 设置过度效果 */
            transition: transform 2s ease;
        }

        input {
            display: none;
        }

        .labels {
            height: 334px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .labels label {
            width: 100px;
            height: 100px;
            display: block;
            cursor: pointer;
            text-align: center;
            line-height: 100px;
        }

        .labels label:hover {
            opacity: 0.8;
        }

        .labels label:nth-child(1) {
            background: khaki;
        }

        .labels label:nth-child(2) {
            background: peru;
        }

        .labels label:nth-child(3) {
            background: aliceblue;
        }

        .container .tab_body .tab_content {
            width: 520px;
            height: 300px;
            background: lawngreen;
            position: absolute;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        .container .tab_body .tab_content:nth-child(2) {
            transform: translateZ(150px);
            background: peru;
        }

        .container .tab_body .tab_content:nth-child(1) {
            transform: translateY(-150px) rotateX(90deg);
            background: khaki;
        }

        .container .tab_body .tab_content:nth-child(3) {
            transform: translateY(150px) rotateX(-90deg);
            background: aliceblue;
        }

        #btn1:checked~.tab_body {
            transform: rotateX(-90deg);
        }

        #btn2:checked~.tab_body {
            transform: rotateX(0deg);
        }

        #btn3:checked~.tab_body {
            transform: rotateX(90deg);
        }
    </style>
</head>

<body>
    <!-- 
        label可以关联其他按钮,for中填的是想关联的id
        所以,想要改变选项框的样式,可以通过label的style来达到
     -->
    <div class="container">
        <input type="radio" name="tabs" id="btn1">
        <input type="radio" name="tabs" id="btn2" checked>
        <input type="radio" name="tabs" id="btn3">

        <div class="tab_body">
            <div class="tab_content">
                <h1>top</h1>
                <p>APEX真的是框是神作</p>
            </div>
            <div class="tab_content">
                <h1>middle</h1>
                <p>APEX真的是框是神作</p>
            </div>
            <div class="tab_content">
                <h1>bottom</h1>
                <p>APEX真的是框是神作</p>
            </div>
        </div>
        <div class="labels">
            <label for="btn1">top</label>
            <label for="btn2">middle</label>
            <label for="btn3">bottom</label>
        </div>
    </div>
</body>

</html>

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

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

相关文章

【嵌入式AI部署神经网络】STM32CubeIDE上部署神经网络之指纹识别(Pytorch)——篇一|环境搭建与模型初步部署篇

前言&#xff1a;本篇主要讲解搭建所需环境&#xff0c;以及基于pytorch框架在stm32cubeide上部署神经网络&#xff0c;部署神经网络到STM32单片机&#xff0c;本篇实现初步部署模型&#xff0c;没有加入训练集与验证集&#xff0c;将在第二篇加入。篇二详细讲解STM32CubeIDE上…

基于研发过程改进的质量度量模型

随着企业规模和产品项目的不断扩张&#xff0c;全面、精准、高效地保障产品质量成为组织的核心挑战。为了应对这一挑战&#xff0c;企业应寻求采用数字化和智能化的研发过程管理方案&#xff0c;以实现对研发活动的精细化量化控制&#xff0c;并利用数据分析工具深入洞察产品质…

Interpreter 解释器

意图 给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;这个解释器使用该表示来解释语言中的句子。 结构 AbstractExpression声明一个程序的解释操作&#xff0c;这个接口为抽象语法树中所有结点所共享。TerminalExpression实现与文法…

【IR 论文】Query2doc — 使用 LLM 做 Query Expansion 来提高信息检索能力

论文&#xff1a;Query2doc: Query Expansion with Large Language Models ⭐⭐⭐⭐⭐ Microsoft Research, EMNLP 2023 文章目录 背景介绍Query2doc 论文速读实现细节实验结果和分析总结分析 背景介绍 信息检索&#xff08;Information Retrieval&#xff0c;IR&#xff09;指…

谷歌收录工具有什么好用的?

如果是想促进谷歌的收录&#xff0c;其实能用的手段无非就两个&#xff0c;谷歌GSC以及爬虫池 谷歌gsc就不用说了&#xff0c;作为谷歌官方提供的工具&#xff0c;他能提供最准确的数据&#xff0c;并且可以提交每天更新的链接&#xff0c;进而促进收录&#xff0c;只要你的页面…

【unity】三维数学应用(计算线和面的交点)

【unity】三维数学应用&#xff08;计算线和面的交点&#xff09; 实现方法有多种&#xff0c;下面介绍一种简单的方法。利用一个点指向面上任意点的向量&#xff0c;到该面法线的投影长度相同的基本原理&#xff0c;结合相似三角形既可以求出交点。 原理 如下图 GD组成的线段…

Docker搭建Maven仓库Nexus

文章目录 一、简介二、Docker部署三、仓库配置四、用户使用Maven五、管理Docker镜像 一、简介 Nexus Repository Manager&#xff08;简称Nexus&#xff09;是一个强大的仓库管理器。 Nexus3支持maven、docker、npm、yum、apt等多种仓库的管理。 建立了 Maven 私服后&#xf…

大小端解释以及如何使用程序判断IDE的存储模式

今天让我们来了解一下大小端的概念吧 什么是大小端&#xff1f; 大端&#xff08;存储&#xff09;模式&#xff1a;指的是数据的低位保存在内存的高地址处&#xff0c;而数据的高位则保存在内存的低地址处。 小端&#xff08;存储&#xff09;模式&#xff1a;指的是数据的低位…

jvm中的垃圾回收器

Jvm中的垃圾回收器 在jvm中&#xff0c;实现了多种垃圾收集器&#xff0c; 包括&#xff1a; 1.串行垃圾收集器 2.并行垃圾收集器 3.CMS&#xff08;并发&#xff09;垃圾收集器 4.G1垃圾收集器 1.串行垃圾回收器 效率低&#xff0c;使用较少 2.并行垃圾回收器 3.并发垃圾回…

InternLM2-lesson3作业+笔记

茴香豆 https://www.bilibili.com/video/BV1QA4m1F7t4/?vd_source902e3124d4683c41b103f1d1322401fa 一、笔记 RAG RAG(Retrieval Augmented Generation)是一种结合了检索(Retrieval)和生成(Generation)的技术&#xff0c;旨在通过利用外部知识库来增强大预言模型的性能。…

ctfshow web入门 web180--web185

web180 import requests import recom re.compile("admin") def repisTrue(char):url f"http://自己环境的网址/api/?id1%27and%27{char}%27%27{char}&page1&limit10"res requests.get(url)w com.search(res.text)if w is not None:return T…

windows系统下python开发工具安装

一. 简介 前一篇文章学习了安装 python解释器&#xff0c;文章如下&#xff1a; windows系统下python解释器安装-CSDN博客 本文来学习如何下载安装 python开发工具 PyCharm。 二. python开发工具 PyCharm下载安装 1. PyCharm官网 PyCharm开发工具 PyCharm为 python代码…

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决 文章目录 1.前言2.doris是什么&#xff1f;2.1简介2.2介绍2.3使用场景2.4架构 3.官网4.构建部署4.1 构建环境4.2 doris2.0.4的fe和be镜像构建4.2.1 fe2.0.4镜像构建脚本4.2.2 be2.0.4镜像构建4.2.3 启动脚…

Linux 操作系统的引导过程

Linux系统开机引导过程&#xff1a; 开机自检 检测硬件设备&#xff0c;找到能够引导系统的设备&#xff0c;比如硬盘MBR引导 运行MBR扇区里的主引导程序GRUB启动GRUB菜单 系统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和…

centos7+mysql57安装以及初始化

1、下载安装yum官方mysql源&#xff1a; http://repo.mysql.com/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/061472a86e9e4548b76d4603d4614568.png rpm -ivh mysql57-community-release-el7.rpm2、yum安装mysql服务 yum install -y mysql-community-server…

深兰科技入选2024全国“人工智能+”行动创新案例TOP100

近日&#xff0c;中科院《互联网周刊》联合eNET研究院、德本咨询、中国社会科学院信息化研究中心共同发布了《2024全国“人工智能”行动创新案例TOP100》榜单。经评委会层层遴选&#xff0c;深兰科技专为洛阳市打造的“工业智能化洛阳中心”项目成功入围该榜单。一同入围的还包…

Threejs 相机定位聚焦

网上大部分讲功能的时候&#xff0c;讲的太复杂了&#xff0c;或者就是讲不清&#xff0c;今天我就给大家简单简洁的描述下这个聚焦定位咋做如下&#xff1a; 扫码关注下&#xff1a; 聚焦定位只要就是设置相机的位置&#xff0c;和更新相机的朝向&#xff0c;就如一个人站在这…

2024三掌柜赠书活动第二十四期:containerd原理剖析与实战

目录 前言 Containerd的架构 Containerd的工作流程 Containerd的实战演示 关于《containerd原理剖析与实战》 编辑推荐 内容简介 作者简介 图书目录 书中前言/序言 《containerd原理剖析与实战》全书速览 结束语 前言 作为开发者&#xff0c;对于编程语言并不陌生&…

Atlas Vector Search:借助语义搜索和 AI 针对任何类型的数据构建智能应用

Atlas Vector Search已正式上线&#xff01; Vector Search&#xff08;向量搜索&#xff09;现在支持生产工作负载&#xff0c;开发者可以继续构建由语义搜索和生成式人工智能驱动的智能应用&#xff0c;同时通过 Search Node&#xff08;搜索节点&#xff09;优化资源消耗并…

Android—— log的记忆

一、关键log 1.Java的 backtrace(堆栈log) 上述是一个空指针异常&#xff0c;问题出现在sgtc.settings&#xff0c;所以属于客户UI问题。 2.WindowManager(管理屏幕上的窗口和视图层次结构) 3.ActivityManager(管理应用程序生命周期和任务栈) 4.wifi操作 (1) 连接wifi&#…
最新文章