重点语法:

transform:translateX(值);沿x轴位移,y、z轴同理。

transform:rotateX(值);沿x轴旋转,y、z轴同理。

perspective: 像素单位数值;实现透视效果,添加给父级。常用数值范围800px-1200px。

transform-style: preserve-3d; 使子元素处于真正的3d空间,添加给父级

空间位移:

复合语法:transform:translate3d(x,y,z);

单独语法:transform:translateX(值);transform:translateY(值);transform:translateZ(值);

x、y轴上的改变与2d位移没有区别,z轴垂直于屏幕,正值方向指向用户,负值方向指向屏幕里面。z轴上的移动需要给父级添加perspective: 像素单位数值;实现透视效果。

 perspective 常用数值范围在 800-1200 之间。代表意思为视距,作用是在 空间转换时,为元素添加 近大远小、近实远虚的视觉效果。

例:

两个一样大小的粉蓝方块,如果没加perspective,hover之后看不到变化,但实际上box2向z轴移动了。hover后box2和box1不处在同一个水平面,他们之间有梯度,正面看的效果便是box2比box1大,因为box2离用户更近。

<style>.box{margin:100px auto;width: 700px;perspective: 1100px;}.box1 {width: 200px;height: 200px;margin:0 30px;float: left;background-color: pink;}.box2 {width: 200px;height: 200px;margin:0 30px;float: left;background-color: rgb(116, 211, 248);}.box2:hover {transform: translateZ(100px);}</style>
</head>
<body>
<div class="box"><div class="box1"></div><div class="box2"></div>
</div>
</body>

空间旋转:

复合语法:transform:rotate3d(x,y,z,角度度数);

x、y、z取值为0-1。复合语法是用来设置自定义旋转轴的位置及旋转的角度,极少使用

单独语法:transform:rotateX();transform:rotateY();transform:rotateZ();

绕轴旋转。

例:

以下图片分别是原图、没加perspective绕x轴45度效果、加了透视1000px后分别绕x轴、y轴、z轴正值方向45度效果。

<style>.box {width: 300px;margin: 100px auto;border: 2px solid #000;perspective: 1000px;}img {width: 300px;transition: all 2s;}.box img:hover {/* transform: rotateX(45deg); *//* transform: rotateY(45deg); */transform: rotateZ(45deg);}</style>
</head>
<body><div class="box"><img src="./images/hero.jpeg" alt=""></div>
</body>

判断旋转方向:

左手法则: 左手握住旋转轴, 拇指指向正值方向, 手指弯曲方向为旋转正值方向。

立体呈现:

perspective只能呈现近大远小、近实远虚的视觉效果,让z轴位移看得出变化,但不能呈现立体图形翻面等效果。

所以需要给父级添加 transform-style: preserve-3d; 使子元素处于真正的3d空间

例:两个大小相同颜色不同的块,一个在前一个在后,使用transform-style: preserve-3d;的效果。

<style>.cube {position: relative;width: 200px;height: 200px;margin: 100px auto;background-color: pink;transition: all 2s;/*使子元素处于3D空间*/transform-style: preserve-3d;}.cube div {position: absolute;left: 0;top: 0;width: 200px;height: 200px;}.front {background-color: orange;/* 向我走近200px */transform: translateZ(200px);/*将两个面在空间上分开层次*/}.back {background-color: green;}/* cube hover 为了看空间感效果 */.cube:hover {transform: rotateY(55deg);}</style>
</head>
<body><div class="cube"><div class="front">前面</div><div class="back">后面</div></div>
</body>
</html>

3D空间转换(位移、旋转、立体呈现)相关推荐

  1. CSS高级功能—3D空间转换(位移、透视、空间旋转)—3D导航—3D缩放

    一.空间(3D)转换 目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果. 属性:transform (1)位移效果(Z轴方向需要配合perspective透视使用) 空间位移的 ...

  2. CSS3 3D空间转换

    目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果 空间:是从坐标轴角度定义的. x .y 和z三条坐标轴构成一个立体空间,z轴与视线方向相同. rotate3d(x,y,z,a ...

  3. 3D转换(位移,旋转)

    透视 语法: perspective: 取值px; 作用:可以实现近大远小,近实远虚,如果想要z轴效果生效,必须要给父级加透视 概念:调整眼睛到屏幕之间的距离,值越大距离盒子越远,盒子看起来越小,反之 ...

  4. 空间转换-3D-在空间中的位移、旋转、缩放

    闲来无事来整理一下关于3D空间转换的位移,旋转,缩放. 3D空间位移 1.空间位移是指分别在X轴,Y轴.Z轴进行位移. 如果看成一个坐标系的话也是由位移的正负的 X轴:右移动为正方向 Y轴:下移动为正 ...

  5. 移动web 空间转换 3D

    移动web 空间转换 3D 空间转换 3D 3D位移 透视 3D旋 rotateX rotateY 左手法则 立体呈现 空间转换 3D 3D坐标系 3D 坐标系比2D 多了一个Z轴. 一定要记住3个坐 ...

  6. 关于3D空间旋转的相关内容的记录(Euler Angles, Gimbal Lock, Quaternion, iOS CMAttitude)

    概述 最近看了些旋转相关内容,记录一下自己的理解和总结.更详尽的内容可以查看参考资料里的文章,讲得很棒. 3D空间旋转的表示方法 可以使用不同的方式表示3D空间里的旋转. Euler Angles(欧 ...

  7. day02-移动web(空间转换)

    day02-移动web @[TOC](day02-移动web) 一.空间转换 1.1 空间位移 1.2 透视效果 1.3开启3d空间 1.4 空间旋转 1.4.1 空间旋转-Z轴 1.4.2 空间旋转 ...

  8. 移动Web【空间转换[空间位移、透视、空间旋转、立体呈现、3D导航、空间缩放]、动画、综合案例】

    文章目录 一.空间转换 1.1 空间位移 1.2 透视 1.3 空间旋转 1.4 立体呈现 1.5 3D导航 1.6 空间缩放 二.动画 2.1 动画的实现步骤 2.2 动画属性 三.综合案例 2.1 ...

  9. 空间(3D)转换:使用transform属性实现元素在空间内的位移、旋转、缩放等效果

    空间转换 目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果 空间:是从坐标轴角度定义的. x .y 和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同. 空间转换也叫3D ...

最新文章

  1. python 发布到linux_Linux(CentOS)下的Python3部署流程
  2. Android笔记三十三.BroadcastReceiver使用
  3. php适配器模式应用,什么是适配器模式,它有哪些应用场景
  4. python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
  5. 终极JPA查询和技巧列表–第1部分
  6. 透彻!博士生成长需要经历的7道门
  7. Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
  8. 协同过滤算法_基于用户的协同过滤推荐算法原理和实现
  9. mybatis开启二级缓存和懒加载,类型别名,类都简称
  10. Python之面向对象 私有属性和私有方法
  11. 开VM虚拟机导致内存和磁盘利用率高
  12. 从微信导出表情包的简便方法 (不使用微信 for pc,无需进入文件夹寻找!)
  13. IEEE 802.3标准就是ISO 802.3标准
  14. 回顾2022,展望2023,一个普通程序员的自述和分享
  15. 《响应式Web设计实践》一1.2 设备来了,设备来了
  16. java公路车为什么会被喷,最全指南
  17. 通过powershell安装360安全卫士
  18. 支付项目:9、购物车模块
  19. 深入学习sniffer
  20. python 画股票走势图_使用Python matplotlib绘制股票走势图

热门文章

  1. python爬取京东商品数据要先登录_京东商品评论情感分析|文本数据预处理
  2. WebSocket前后端联调
  3. 编程计算并输出1到n之间的所有数的平方与立方。其中,n值由用户从键盘输入。
  4. 6款职场发型,造就你的气质不凡!
  5. 简述vue响应式原理
  6. IsNotEmpty和isNotBlank的区别
  7. ACM-ICPC 2018 江苏站 I. T-shirt (含矩阵乘法结合律证明)
  8. 【摆脱CRUD,大厂进阶之路】Java架构师学习指引
  9. 今天是教师节,祝所有老师节日快乐!
  10. 【LeetCode】46 全排列 回溯法三部曲模板+树枝节点去重