CSS3——3D变形 transform

简介: CSS3——3D变形 transform

3D变形(CSS3) transform


2d x y


3d x y z


左手坐标系


伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。这样我们就建立了一个左手坐标系,拇指、食指和中指分别代表X、Y、Z轴的正方向。如下图



CSS3中的3D坐标系与上述的3D坐标系是有一定区别的,相当于其绕着X轴旋转了180度,如下图



简单记住他们的坐标:


x左边是负的,右边是正的


y 上面是负的, 下面是正的


z 里面是负的, 外面是正的


rotateX()



就是沿着 x 立体旋转.


img {
  transition:all 0.5s ease 0s;
}
img:hove {
  transform:rotateX(180deg);
}


rotateY()


沿着y轴进行旋转



img {
  transition:all 0.5s ease 0s;
}
img:hove {
  transform:rotateX(180deg);
}


rotateZ()


沿着z轴进行旋转


img {
  transition:all .25s ease-in 0s;
}
img:hover {
  /* transform:rotateX(180deg); */
  /* transform:rotateY(180deg); */
  /* transform:rotateZ(180deg); */
  /* transform:rotateX(45deg) rotateY(180deg) rotateZ(90deg) skew(0,10deg); */
}


透视(perspective)


电脑显示屏是一个2D平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。


透视可以将一个2D平面,在转换的过程当中,呈现3D效果。


透视原理: 近大远小 。


浏览器透视:把近大远小的所有图像,透视在屏幕上。


perspective:视距,表示视点距离屏幕的长短。视点,用于模拟透视效果时人眼的位置

注:并非任何情况下需要透视效果,根据开发需要进行设置。


perspective 一般作为一个属性,设置给父元素,作用于所有3D转换的子元素


理解透视距离原理:



translateX(x)



仅水平方向移动(X轴移动)


主要目的实现移动效果


translateY(y)


仅垂直方向移动(Y轴移动)



translateZ(z) ( 多做测试理解 )


transformZ的直观表现形式就是大小变化,实质是XY平面相对于视点的远近变化(说远近就一定会说到离什么参照物远或近,在这里参照物就是perspective属性)。比如设置了perspective为200px;那么transformZ的值越接近200,就是离的越近,看上去也就越大,超过200就看不到了,因为相当于跑到后脑勺去了,我相信你正常情况下,是看不到自己的后脑勺的。


translate3d(x,y,z)


其中,x和y可以是长度值,也可以是百分比,百分比是相对于其本身元素水平方向的宽度和垂直方向的高度和;z只能设置长度值


backface-visibility


backface-visibility 属性定义当元素不面向屏幕时是否可见。


案例1:旋转的轮播图



案例2:开门大吉




案例地址:https://yangyongli.blog.csdn.net/article/details/113177328


案例3:导航栏旋转



案例地址:https://yangyongli.blog.csdn.net/article/details/113177328

相关文章
|
1月前
CSS3自动旋转正方体3D特效
CSS3自动旋转正方体3D特效
24 3
CSS3自动旋转正方体3D特效
|
7月前
CSS3 transform 文字切斜展开动画
CSS3 transform 文字切斜展开动画
54 0
|
7月前
CSS3 transform 立体导航栏
CSS3 transform 立体导航栏
29 0
|
1月前
|
前端开发
CSS3的几个变形案例……
CSS3的几个变形案例……
17 0
|
1月前
|
前端开发
纯css实现的3D立体鸡蛋动画视觉效果
纯css实现的3D立体鸡蛋动画视觉效果
26 6
纯css实现的3D立体鸡蛋动画视觉效果
|
2月前
|
UED
css3 2D与3D转换
css3 2D与3D转换
32 0
|
4月前
|
JavaScript 前端开发
CSS3 transform 字体模糊问题
CSS3 transform 字体模糊问题
|
4月前
HTML+CSS制作3D旋转相册
HTML+CSS制作3D旋转相册
|
4月前
|
前端开发
HTML+CSS制作3D步数统计界面
HTML+CSS制作3D步数统计界面
|
4月前
|
前端开发
HTML+CSS实现菜单的3D翻转特效
HTML+CSS实现菜单的3D翻转特效