先上结果图:
基本思路:三层构造:视角容器>>载体>>细致3d图象。
视角容器:决议3d的显现结果,这里的pespective属性吸收参数为像素,perspective的值越大,代表“眼睛离视察物越远”,值越小,代表“眼睛越接近视察物”
缺乏perspective属性,将没法调解观察的视角。
载体:支撑承载3d图象
这个载体跟一般的html标签最大的区分在于它多了一个属性:transform-style:preserve-3d。示意它支撑3d图象显现。
假如缺乏了这个属性,举行过3d转换的3d图形们将被压在一个2d平面内,没法显现出3d结果,由于容器都是扁的,纵然内容是3d的也于事无补。
细致3d图象:从2d到3d的转换
这里的3d图象都是由2d平面图象转换而来,那末怎样转换呢。须要用到translateX,translateY,translateZ属性,固然简写也就是translate-3d,另有rotateX,rotateY,rotateZ比及。而translate(平移),rotate(扭转)的细致划定规矩,都是基于下方这幅有名的参考图:三维坐标图举行的。
起首说translate的划定规矩,这个天然没必要多说,对照着看就能够了,比方说translateZ(-100px)在这幅图中就相称等于图象往-z轴的方向移了100px,抽象一点的说法就是“向屏幕内部凹陷了100px”。translateX,translateY以此类推。
难点在rotate,通知人人一个很简朴的推断轨则:正向轴对着眼睛,顺时针则扭转角度为正,逆时针则扭转角度为负。
或许用左手轨则也行:伸出左手,大拇指指向正轴方向,四个手指的指向等于扭转正向,但务必记着是左手!
左手哥镇场:
就是这么简朴,比方如今我们要制造一个3d骰子,起首六个平面图都如上图所示摆在三维坐标系的中心店,他们的大小都跟载体一样,要变成一个骰子,须要做以下变更:
(注:载体和6个面的长宽均为200px)
对照着3d图,人人比划比划就晓得怎么回事了。
附上悉数源码:
<template> <div> <section> <div>前面</div> <div>背面</div> <div>左面</div> <div>右面</div> <div>上面</div> <div>下面</div> </section> </div> </template> <style scoped> .box { width: 100%; height: 100%; perspective: 500px; } .cube { position: relative; width: 200px; height: 200px; margin: 100px auto; color: #ff92ff; font-size: 36px; font-weight: 100; text-align: center; line-height: 200px; transform-style: preserve-3d; transform: rotateX(-50deg) rotateY(-50deg) rotateZ(0deg); // animation: move 8s infinite linear; @keyframes move { 0% { transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); } 100% { transform: rotateX(720deg) rotateY(360deg) rotateZ(360deg); } } div { position: absolute; width: 100%; height: 100%; border: 10px solid #66daff; border-radius: 20px; background-color: rgba(51, 51, 51, 0.3); } .front { transform: translateZ(100px); } .back { transform: translateZ(-100px) rotateY(180deg); } .left { transform: translateX(-100px) rotateY(-90deg); } .right { transform: translateX(100px) rotateY(90deg); } .top { transform: translateY(-100px) rotateX(90deg); } .bottom { transform: translateY(100px) rotateX(-90deg); } } </style>
愿望本文对你有所协助。
以上就是浅谈css 3d与空间坐标轴的细致内容,更多请关注ki4网别的相干文章!