3D空间转换(位移、旋转、立体呈现)
重点语法:
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,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空间转换(位移、旋转、立体呈现)相关推荐
- CSS高级功能—3D空间转换(位移、透视、空间旋转)—3D导航—3D缩放
一.空间(3D)转换 目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果. 属性:transform (1)位移效果(Z轴方向需要配合perspective透视使用) 空间位移的 ...
- CSS3 3D空间转换
目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果 空间:是从坐标轴角度定义的. x .y 和z三条坐标轴构成一个立体空间,z轴与视线方向相同. rotate3d(x,y,z,a ...
- 3D转换(位移,旋转)
透视 语法: perspective: 取值px; 作用:可以实现近大远小,近实远虚,如果想要z轴效果生效,必须要给父级加透视 概念:调整眼睛到屏幕之间的距离,值越大距离盒子越远,盒子看起来越小,反之 ...
- 空间转换-3D-在空间中的位移、旋转、缩放
闲来无事来整理一下关于3D空间转换的位移,旋转,缩放. 3D空间位移 1.空间位移是指分别在X轴,Y轴.Z轴进行位移. 如果看成一个坐标系的话也是由位移的正负的 X轴:右移动为正方向 Y轴:下移动为正 ...
- 移动web 空间转换 3D
移动web 空间转换 3D 空间转换 3D 3D位移 透视 3D旋 rotateX rotateY 左手法则 立体呈现 空间转换 3D 3D坐标系 3D 坐标系比2D 多了一个Z轴. 一定要记住3个坐 ...
- 关于3D空间旋转的相关内容的记录(Euler Angles, Gimbal Lock, Quaternion, iOS CMAttitude)
概述 最近看了些旋转相关内容,记录一下自己的理解和总结.更详尽的内容可以查看参考资料里的文章,讲得很棒. 3D空间旋转的表示方法 可以使用不同的方式表示3D空间里的旋转. Euler Angles(欧 ...
- day02-移动web(空间转换)
day02-移动web @[TOC](day02-移动web) 一.空间转换 1.1 空间位移 1.2 透视效果 1.3开启3d空间 1.4 空间旋转 1.4.1 空间旋转-Z轴 1.4.2 空间旋转 ...
- 移动Web【空间转换[空间位移、透视、空间旋转、立体呈现、3D导航、空间缩放]、动画、综合案例】
文章目录 一.空间转换 1.1 空间位移 1.2 透视 1.3 空间旋转 1.4 立体呈现 1.5 3D导航 1.6 空间缩放 二.动画 2.1 动画的实现步骤 2.2 动画属性 三.综合案例 2.1 ...
- 空间(3D)转换:使用transform属性实现元素在空间内的位移、旋转、缩放等效果
空间转换 目标:使用transform属性实现元素在空间内的位移.旋转.缩放等效果 空间:是从坐标轴角度定义的. x .y 和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同. 空间转换也叫3D ...
最新文章
- python 发布到linux_Linux(CentOS)下的Python3部署流程
- Android笔记三十三.BroadcastReceiver使用
- php适配器模式应用,什么是适配器模式,它有哪些应用场景
- python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
- 终极JPA查询和技巧列表–第1部分
- 透彻!博士生成长需要经历的7道门
- Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
- 协同过滤算法_基于用户的协同过滤推荐算法原理和实现
- mybatis开启二级缓存和懒加载,类型别名,类都简称
- Python之面向对象 私有属性和私有方法
- 开VM虚拟机导致内存和磁盘利用率高
- 从微信导出表情包的简便方法 (不使用微信 for pc,无需进入文件夹寻找!)
- IEEE 802.3标准就是ISO 802.3标准
- 回顾2022,展望2023,一个普通程序员的自述和分享
- 《响应式Web设计实践》一1.2 设备来了,设备来了
- java公路车为什么会被喷,最全指南
- 通过powershell安装360安全卫士
- 支付项目:9、购物车模块
- 深入学习sniffer
- python 画股票走势图_使用Python matplotlib绘制股票走势图