周末朋友叫我去看电影,
我:“啥片,3D的不?”,
朋友:“不是!”;
我:“不是3D那就不去了,等以后在电脑上看吧,去电影院不就是去感受影片的3D的视觉效果么!”
朋友:“……”
做网页也一样,现在2D已经不能满足我们的视觉需求,为了追求视觉冲突的真实感,我们往往会使用一些css3 3D效果的交互;最近我被淘宝造物节给刺激了,试着学着折腾css3的 3D transform效果。虽然现在还没有达到效果,但是还是有所收获。
建立立体感
首先我们要有一定的立体感:
通过这个图片应该清楚的了解到了x轴 y轴 z轴是什么概念了。
3D transform 就是沿着x轴 y轴 z轴 做变化;
3D transform中有下面这三个方法:
rotateX( angle )
rotateY( angle )
rotateZ( angle )
rotateX
旋转X轴,rotateY
旋转Y轴,rotateZ
旋转Z轴,括号里边都是变化的度数;
3d无非就是通过X Y Z轴来进行操作
搭建3D
搭建之前首先明白以下属性的意思:transform-style: preserve-3d;
3d空间perspective: 800px;
它被成为视距或者景深.perspective-origin:50% 50%;
这就是你的眼睛位置 位置不同效果也就不用了
translateZ
则可以帮你理解透视位置。transform-origin
我们成为基点 在水平方向改变观看div的位置backface-visibility:hidden;
为了切合实际,我们常常会这样设置,使后面元素不可见scale
缩放 rotate
旋转 translate
移动 skew
倾斜 通过这些来进行3d效果
一个小例子:
HTML:
1 |
|
CSS:
1 | #box{ |
实例
我们可以用css 3Dtransform制作个魔方
首先先让六个面全部叠加在一起; 通过自己对3d空间的理解 和 x y z 轴的移动来拼接这个立方体;
然后使用css3 动画 animation 改变rotate值,使其动起来
部分css3代码:
1 | #box { |
- 设置6个
div
分别表示left(左)
、right(右)
、top(上)
、buttom(下)
、hou(后)
、qian(前)
各六个面,然后给一定的transform
形成一个立方体,再给整体添加个动画,让其自运动