CSS3D 從構建乙個立方體開始

2021-08-21 03:34:34 字數 1554 閱讀 9045

css3d

3d變化是css3的新屬性,可以用來實現一些酷炫的效果。本文以如何搭建乙個立方體為例談談關於3d的個人見解。

頁面座標是三維的,x軸從頁面左邊向右,y軸從頁面上方向下,z軸從頁面裡面向外,和我們以前數學立體幾何中的座標系很相似,只是y軸的方向相反,座標原點預設時圖形中心。需要注意兩點:

1.旋轉角度為正時遵循我自己稱之為的「左手定則」,即左手拇指指向座標軸正方向,旋轉方向就是四指朝向的方向;旋轉角度為負時遵守類似的「右手定則」。

2.旋轉圖形時,旋轉的是座標系,而不是圖形。例如rotatex(90deg);按照我們的「左手定則」,座標系此時的z軸變為從頁面下方往上,而y軸變為從頁面裡面向外。

構建立體圖形時只需要記住三個層次即可:

1.景深,即perspective,就是我們觀察者視角距離物體的位置。

2.容器,比如構建乙個立方體,立方體有6個面,那麼需要乙個容器,使得轉動這個容器,6個面同時做動作。容器也很簡單,需要新增乙個transform-style:preserve-3d;屬性,不然6個面就會被壓扁到乙個平面上顯示。

3.借用很多人的舞台-容器-演員的說法,我們把立方體的每個面也稱為演員,演員做的事情也很簡單,只需要安排好每個角色的位置和角度即可。

多說無益,下面具體展示一下如何構建乙個立方體。

top

botleft

right

front

back

很明顯的三層結構。

第一層:

.stage
第二層:

.stage .rect
第三層:

.stage .rect .face

.stage .rect .front

.stage .rect .back

.stage .rect .left

.stage .rect .right

.stage .rect .top

.stage .rect .bot

效果圖如下

假如取消景深,是什麼樣的效果?

看起來很奇怪,對吧,因為沒有遵循近大遠小的實際。

假如取消

transform-style:preserve-3d;
會怎樣?

可以看到,圖形被壓扁在乙個平面上了。

記住三個層次,兩點注意,掌握css3d就是這麼簡單!

CSS3D變換 立方體旋轉效果

3d變換基於幾個比較重要的屬性,perspective,translatez,preserve 3d transform style preserve 3d 建立3d空間 perspective視鏡 perspective origin視鏡基點 x left center right length ...

HTML CSS寫乙個3D立方體

相信有許多的朋友在學3d轉換的時候很懵,或者學完之後想做個小練習獲得成就感鼓勵自己,再或者想更理解透徹。做完這小練習相信大家一定會有所收穫。廢話不多說了,直接開始 html 前後上 下左右相信大家玩過魔方以及在小學的時候學過立方體展開,上面 都能理解。preserve div preserve這裡主...

CSS做3D旋轉魔方(立方體)

css做3d旋轉魔方,使用的是3d位移與旋轉屬性,以及動畫屬性。不多,以下便是全部 立方體title keyframes run 40 70 100 box box div 分別給每個面新增乙個背景圖,並將前後上下左右六個面通過位移與旋轉,放置到對應的位置。f.b.t d.l rstyle head...