在做练习的时候学到css的翻转导航菜单,原代码有点让人头疼,通过对其css的参数一点点研究了其实现过程。
这里推荐大家研究这个3D翻转动画的代码。
一
首先要知道坐标系的设定如下:
其次翻转关键的参数有:
1.设置透视属性,观察者位置在视图前200px;
2.设置是3D空间的变换效果,子元素合在一起变换;
3.设置旋转,沿X轴旋转90度,平面旋转后看到的是线;
4.设置位移,沿Z轴位移30px。
5.设置变换函数。
二
为了先初步了解,我先做一个导航图正面的翻转效果。
效果同立方体的翻转,正面翻转到顶面。立方体只旋转不位移,但是立方体的正面是发生位移的。
正面的变换原点在中心点,相对变换前的位置,变换后的位置向上位移50% 向后位移50%。
但是!css动画结束参数是根据这个面结束时的坐标的,这时候坐标系跟着变了,最后的结果是Z轴+50% Y轴-50%。
初始参数参考坐标如图一,不是根据变换后坐标写。
下图是三个参数的效果。
父元素设置 :


另外下面做个错误的稀饭
在立方体元素上设置transform-style: preserve-3d; perspective:200px;
立方体上设置景深 perspective,立方体的图形就被固定了,或者说观察位置随立方体改变。需要从上一级元素观察才行。
↓ 在立方体元素上同时设置transform-style: preserve-3d; perspective
↓ 没有设置perspective;
↓ 没有设置transform-style: preserve-3d