CSS中的transform屬性可以讓元素移動(dòng)、旋轉(zhuǎn)、縮放和傾斜。其中,transform: translate3d(x, y, z) 可以在3D空間中移動(dòng)元素。
這個(gè)3D移動(dòng)是如何實(shí)現(xiàn)的呢?實(shí)際上,這是通過(guò)CSS的translateZ來(lái)控制的。translateZ是transform屬性中的一個(gè)函數(shù),它可以將元素按指定向量在Z軸方向移動(dòng)。
例如:
.box { transform: translate3d(50px, 50px, -50px); }
上面的代碼將元素向右下方移動(dòng)50個(gè)像素,并沿著Z軸方向向內(nèi)移動(dòng)50個(gè)像素(其實(shí)就是把元素移動(dòng)到了眼睛里面)。這樣看起來(lái)元素就像是從3D空間里冒出來(lái)一樣。
當(dāng)然,除了translate3d函數(shù),還有其他的3D變形效果可以使用,如rotate3d和scale3d等。
需要注意的是,由于3D變換需要計(jì)算3D坐標(biāo),并且受到硬件加速的影響,因此會(huì)對(duì)性能造成一定的影響,尤其是在移動(dòng)端設(shè)備上。在開(kāi)發(fā)時(shí)應(yīng)注意適量使用。