【CSS3】CSS3 3D 转换 ④ ( 3D 旋转 rotate3d | rotate3d 语法 | rotate3d 自定义轴旋转 | 元素旋转方向 - 左手准则 | 代码示例 )

2023-08-13 21:15:14





一、3D 旋转 rotate3d



3D 旋转 指的是 在 三维空间坐标系 中 , 绕 X 轴 , Y 轴 , Z 轴 进行旋转 , 同时还可以绕 自定义轴 进行旋转 ;

2D 旋转只能 以 某个点为中心进行旋转 , 3D 旋转可以绕某个轴进行旋转 ;


1、rotate3d 语法


CSS3 中 3D 旋转 语法 :

  • 绕 X 轴旋转 : 沿着 X 轴 正方向 旋转 45 度 ;
transform: rotateX(45deg)
  • 绕 Y 轴旋转 : 沿着 Y 轴 正方向 旋转 45 度 ;
transform: rotateY(45deg)
  • 绕 Z 轴旋转 : 沿着 Z 轴 正方向 旋转 45 度 ;
transform: rotateZ(45deg)
  • 沿自定义轴旋转 : 沿着自定义的轴 旋转 deg 角度 ;
transform: rotate3d(x, y, z, deg)

2、rotate3d 自定义轴旋转


下面的 rotate3d 函数 , 接受四个参数 , 前 3 个参数是用来指定 自定义旋转的轴 ,

0, 0, 1, 说明这里只使用了 Z 轴作为旋转的轴 ,

下面的代码的实际作用是 绕 Z 轴旋转 360 度 ;

div {  
  transform: rotate3d(0, 0, 1, 360deg);  
}

3、元素旋转方向 - 左手准则


元素旋转时进行 方向判断 , 按照左手准则进行判断 ;

左手准则 : 左手 拇指 指向 对应轴 的 正方向 , 手指弯曲的方向就是 绕该轴旋转 的方向 ;

在这里插入图片描述
各个轴的正负方向 , 参考下图 :

在这里插入图片描述





二、代码示例




1、代码示例


代码示例 :

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D 转换 - 平移</title>
    <style>
        body {
            /* 透视 属性 需要写在 被观察元素 的  父容器 上
                视距越小 成像越大 
                如果想要网页中的元素看起来大一些 可以减小视距 */
            perspective: 500px;
        }
        
        img {
            /* 将图片设置为行内块元素 */
            display: block;
            /* 设置图片 上下 100 像素外边距 水平居中对齐  */
            margin: 100px auto;
            /* 设置动画过渡时间 2 秒 */
            transition: all 2s;
        }
        
        img:hover {
            transform: rotateX(180deg);
        }
    </style>
</head>

<body>
    <img src="images/logo.png">
</body>

</html>

2、执行结果


正常显示状态如下 :

在这里插入图片描述

鼠标移动到图像上方后 , 会变成如下样式 :

在这里插入图片描述

更多推荐

使用vue-cli搭建SPA项目->spa项目的构建,基于spa项目路由完成,基于spa项目完成嵌套路由

spa项目的构建基于spa项目路由完成基于spa项目完成嵌套路由1.spa项目的构建vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,创建命令如下:vueinitwebpackxxx注1:xxx为自己创建项目的名称注2:必须先安装vue,vue-cli,webpack,node等

Annealing-based Label-Transfer Learning for Open World Object Detection(论文解析)

Annealing-basedLabel-TransferLearningforOpenWorldObjectDetection摘要2相关工作摘要“开放世界目标检测(OpenWorldObjectDetection,OWOD)因其在现实世界中的实用性而引起了广泛关注。以往的OWOD研究通常采用手动设计未知发现策略来从背

MySQL索引

MySQL索引1、索引的概念2、索引的作用2.1索引的副作用3、创建索引的原则依据4、索引的分类和创建4.1、普通索引4.1.1创建表的时候指定索引4.1.2直接创建索引4.1.3修改表方式创建4.2、唯一索引4.2.1创建表的时候指定4.2.2直接创建唯一索引4.2.3修改表方式创建4.3、主键索引4.3.1创建表的

Redis学习笔记--001

Redis快速入门文章目录Redis快速入门一、初识Redis1.1、NoSQL数据库1.2、Redis介绍1.3、[Redis](https://redis.io/)的安装二、Redis常见命令2.1、Redis默认启动2.2、指定配置启动2.3、Redis开机自启设置三、Redis客户端3.1、Redis命令行客户

嵌入式Linux学习(1)——通信总线协议简介

目录一.UART1.1单工/双工通信​编辑1.2UART帧格式1.2.1Q/A1.3UART硬件结构二.基于UART的协议2.1RS2322.1.1RS232协议存在的问题2.2RS485​编辑2.2.1差分信号2.2.2RS485优势三.IIC3.1通信过程3.2IIC总线寻址3.3IIC总线信号3.3.1起始与停止

分布式架构和微服务架构的区别

1、含义不同微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中。分布式系统是若干独立计算机的集合,这些计算机对用户来说就像单个相关系统。2、概念不同微服务架构是设计层面的东西,一般考虑如何将系统从逻辑上进行拆分,也就是垂直拆分。分布式架构是部署层面的东西,即强调物理层面的组成,即系统

操作系统备考学习 day5(2.2.5 - 2.3.1)

操作系统备考学习day5第二章进程与线程2.2处理机调度2.2.5调度算法先来先服务(FCFS)短作业优先(SJF)高响应比优先(HRRN)时间片轮转(RR)优先级调度算法多级反馈队列调度算法多级队列调度算法2.3同步与互斥2.3.1同步与互斥的基本概念第二章进程与线程2.2处理机调度2.2.5调度算法先来先服务(FC

网络安全日报 2023年09月21日

1、研究人员披露基于ERMAC木马的Hook家族银行木马https://research.nccgroup.com/2023/09/11/from-ermac-to-hook-investigating-the-technical-differences-between-two-android-malware-vari

卷积神经网络实现咖啡豆分类 - P7

🍨本文为🔗365天深度学习训练营中的学习记录博客🍖原作者:K同学啊|接辅导、项目定制🚀文章来源:K同学的学习圈子目录环境步骤环境设置包引用全局设备对象数据准备查看图像的信息制作数据集模型设计手动搭建的vgg16网络精简后的咖啡豆识别网络模型训练编写训练函数编写测试函数开始训练展示训练过程模型效果展示总结与心得体

四、二叉树-上(Binary tree)

文章目录一、算法核心思想二、算法模型(一)回溯1.[104.二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)(1)思路(2)代码(3)复杂度分析2.[144.二叉树的前序遍历](https://leetcode.cn/proble

基础组件(线程池、内存池、异步请求池、Mysql连接池)

文章目录1、概述2、线程池2、异步请求池3、内存池1、概述池化技术,减少了资源创建次数,提高了程序响应性能,特别是在高并发场景下,当程序7*24小时运行,创建资源可能会出现耗时较长和失败等问题,池化技术,主要是程序初始化之前创建多个可用连接,集中管理起来,后续直接使用,使用完并归还。2、线程池线程池主要解决问题:1、解

热文推荐