学习空间转换-3D转换

news/2024/9/25 11:11:28/

1.什么是空间转换?

使用的是transform属性实现元素在空间内的位移,旋转,缩放等效果。

空间:是从坐标轴角度定义的。x,y,z三条坐标轴构成的一个立体空间,Z轴位置与视线方向相同。

所以空间转换也被叫做3D转换

 语法:

transform:translate3d(x,y,z);
transform:translateX(值);
transform:translateY(值);
transform:translateZ(值);
里面的值可以是正数也可以是负数
可以是像数单位值,也可以是百分比。

2.视距

perspective属性实现透视效果。在我们的现实生活中如果一个人慢慢的从远走到我目前,那么整个人也就慢慢变大,但他不是真正意义上面的变大,而是对于我们的眼球他更近了,也就更大了。也就是我们常说的近大远小。

属性:perspective。一般放到body属性中。

它的取值一般是800-1200。值越小,盒子的变换会比较猛烈。也就是说,值越小,离眼球的距离就越近。

作用:也就是在实现空间转换的时候,为元素添加近大远小,近实远虚的视觉效果。

3.空间旋转

属性:rotate实现元素空间旋转的效果。

语法:

transform:rotateZ(值);
transform:rotateX(值);
transform:rotateY(值);
<!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>Document</title><style>body {/* 开启视距 */perspective: 800px;}.box {width: 500px;height: 500px;background-color: aqua;margin: 100px auto;transition: all 8s;}.box:hover {transform: rotateZ(360deg);}</style>
</head><body><div class="box"></div>
</body></html>

自定轴位置

语法:

route3d(x,y,z,角度度数);用来设置自定义旋转轴的位置以及旋转的角度
x,y,z的取值为0-1之间的数字

4.立体呈现

属性

transform-style:preserve-3d;
<!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>Document</title><style>body {perspective: 800px;}.father {width: 20px;height: 200px;border: 1px solid #000;margin: 100px auto;position: relative;/* 设置3D转换,必须给父盒子设置3D呈现 */transform-style:preserve-3d ;transition: all .3s;}.father div {position: absolute;top: 0;left: 0;width: 200px;height: 200px;}.father .son1 {background-color: red;transform: translateZ(100px);}.father .son2 {background-color: blue;}.father:hover {transform: rotateY(60deg);}</style>
</head>
<body><div class="father"><div class="son1">1</div><div class="son2">2</div></div>
</body>
</html>

5.案例-3D导航

3d

<!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>Document</title><style>body {perspective: 600px;}.father {width: 200px;height: 50px;margin: 100px auto;position: relative;transform-style: preserve-3d;transition: all .3s;}.father div {position: absolute;top: 0;left: 0;width: 200px;height: 50px;text-align: center;line-height: 50px;}.son1 {background-color: aqua;transform: translateZ(25px);}.son2 {background-color: blueviolet;transform: translateY(-25px) rotateX(90deg);}.father:hover {transform: rotateX(-90deg);}</style>
</head><body><div class="father"><div class="son1">首页</div><div class="son2">index</div></div>
</body></html>

注意:本文章是笔者的学习笔记,如果您在浏览或者运行代码的时候发现了问题,还请您在评论区留言,笔者在看到后会在第一时间解决,谢谢。


http://www.ppmy.cn/news/1427353.html

相关文章

SpringBoot集成FTP

1.加入核心依赖 <dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency> 完整依赖 <dependencies><dependency><groupId>org.springfra…

探索Java设计模式:桥接模式

探索Java设计模式&#xff1a;深入理解与实践桥接模式 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它将抽象部分与其实现部分分离&#xff0c;使它们可以独立变化。在Java编程中&#xff0c;桥接模式常用于实现多维度变化、降低类的层次…

【中级软件设计师】上午题08-UML(下):序列图、通信图、状态图、活动图、构件图、部署图

上午题08-UML 1 序列图2 通信图3 状态图3.1 状态和活动3.2 转换和事件 4 活动图5 构件图&#xff08;组件图&#xff09;6 部署图 【中级软件设计师】上午题08-UML(上)&#xff1a;类图、对象图、用例图 UML图总和 静态建模&#xff1a;类图、对象图、用例图 动态建模&#xff…

Table表格(关于个人介绍与图片)

展开行&#xff1a; <el-table :data"gainData" :border"gainParentBorder" style"width: 100%"><el-table-column type"expand"><template #default"props"><div m"4"><h3>工作经…

【Golang】Gin教学-获取请求信息并返回

安装Gin初始化Gin处理所有HTTP请求获取请求的URL和Method获取请求参数根据Content-Type判断请求数据类型处理JSON数据处理表单数据处理文件返回JSON响应启动服务完整代码测试 Gin是一个用Go&#xff08;又称Golang&#xff09;编写的HTTP Web框架&#xff0c;它具有高性能和简洁…

stm32知识记录

文章目录 单片机发送AT指令给ESP8266接收手机app数据的结构体C语言的枚举类枚举类的应用 设置水泵开启关闭代码分析DS18B20的端口 单片机发送AT指令给ESP8266 以下是一个简单的示例&#xff0c;演示了如何使用AT指令从单片机发送数据给ESP8266模块&#xff0c;并通过Wi-Fi发送…

安装SSL证书之后还会有不安全提示怎么办?

安装SSL证书过程中如果遇到错误&#xff0c;不要慌&#xff0c;按照以下步骤进行排查和解决&#xff1a; 1. 仔细阅读错误信息&#xff1a; - 错误消息通常会明确指出问题所在&#xff0c;如证书过期、证书链不完整、域名不匹配等。记下或截图保存具体的错误代码和描述&#xf…

webots学习记录8:R2023b如何在某个零件上添加一个恒定的力(矩)

在webots安装路径下&#xff0c;从include\controller\c\webots\supervisor.h中可以看到如下定义&#xff1a; void wb_supervisor_node_add_force(WbNodeRef node, const double force[3], bool relative); void wb_supervisor_node_add_force_with_offset(WbNodeRef node, c…