上一篇讲解了如何对案例的整体布局后,这次开始讲解如何实现旋转时的3D
效果。
点击这里可查看案例。
思路
当所有content
的子元素都叠在一起后,我们平视屏幕时仅仅显示的是一个平面,所以我们很难有思路去执行下一个步骤。这时候,我们可以换一个角度去看这个问题,也就是换一个角度去看这个立体直角坐标系。
上图中,z轴
为虚线,因为我们并没有指定观察者与平面的距离,也就是此时它还不是真正意义上的立体直角坐标系,如果给定content3
一个旋转角transform: rotateX(30deg)
的话,它并不会出现3D
效果。
这时,就需要在父元素上添加perspective
属性。
1 |
|
perspective
属性指定了观察者与z=0
平面的距离,使具有三维位置变换的元素产生透视效果。z>0
的三维元素比正常大,而z<0
时则比正常小,大小程度由该属性的值决定。
换个角度
有了真正的立体直角坐标系后,我们可以再换个角度去看案例。
看到这里是不是有思路了呢?不着急,我们再一点一点的去实现它。
content1
沿x轴
旋转90度
,content3
沿x轴
旋转-90度
,content2
不改变,则会出现一个“十字型”图形。若要将它旋转实现3D
效果,还要对content
添加一个属性:transform-style: preserve-3d;
接着它们根据中心点,平移,content1
沿y轴
负方向平移150px
,content2
沿z轴
正方向平移150px
,content3
沿y轴
正方向平移150px
,出现的就是一个三面的矩形立方体。
1 |
|
显示距离
上面说到,perspective
属性指定了观察者与z=0
平面的距离,而z>0
的三维元素比正常大,所以我们与平面的距离z
增加,那么平面就会显得较大。
比如“两小儿辩日”中曾提到的:太阳到了中午会离地面近,那么太阳会变大,天气也会变热。
所以,我们只需要调整元素的宽高即可。
1 |
|
功能实现
完成所有的样式及布局后,我们开始实现js
的点击更换css
样式的功能。
- JQuery
点击 下载 jquery-3.2.1.js文件
1 |
|
- 原生Javascript
1 |
|
感谢认真看完的你!