css3 3D旋轉特效
最近自己的網站正在製作,由於是個人網站,所以我傲嬌的拋棄了IE,痛快的用起了css3和html5的諸多特效,然而問題亦隨之而來。這篇文章的主要講解在使用css3的3D旋轉的時候遇到的文章,錯誤之處,還望各位看官老爺評論中指出。
3D旋轉,難點在與其處在一個三維的空間中,我們需要發揮一下空間想象力在頭腦中構建它的結構,同時,它的座標系是隨著所做的3D變化而改變的,所以在進行變換的過程中,不同變換動作的順序亦是至關重要。
網頁中常見的3D旋轉特效有兩種:繞Y軸旋轉和繞X軸旋轉。
繞Y軸旋轉180度:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>繞Y軸旋轉</title> <style type="text/css"> *{ margin: 0; padding: 0; } #box{ margin: 50px auto; } #box,.container,.front,.back{ width: 200px; height: 200px; } .container{ position: relative; transform-style: preserve-3d; transition: all 1s linear; } .container:hover{ transform: rotateY(180deg); } .front,.back{ position: absolute; top: 0; left: 0; backface-visibility: hidden; color: #fff; font-size: 40px; text-align: center; line-height: 200px; } .front{ background: red; } .back{ background: green; transform: rotateY(180deg); } </style> </head> <body> <div id="box"> <div class="container"> <div class="front">front</div> <div class="back">back</div> </div> </div> </body> </html>
程式碼沒有註釋,因為都是一些屬性,不懂的屬性可以直接百度,這裡主要講解其核心思想。
繞Y軸旋轉,就是將正面的轉到後面,而後面的顯示在正面。如果直接旋轉,不設定背面的元素的話,那麼旋轉180度後你所看到的就像一張畫貼在玻璃上,你從背面看而已。這種比較簡單,但是在網頁中並不常用,最多的還是上面程式碼中所寫的這種效果。
1、我們要有兩個面。設定backface-visibility為hidden,隱藏兩個面的背面,將需要顯示在背面的那個面back繞Y軸旋轉180度。
2、將兩個面裝在一個盒子a裡面並且設定盒子transform-style: preserve-3d,我們要操作的是這個盒子。
3、給盒子a設定滑鼠移入旋轉180度,完成!
繞X軸旋轉和繞Y軸旋轉的本質是相同的,所以繞X軸旋轉直接講解旋轉90度,這個原理也可以反過來套用在Y軸的旋轉上。
相比來說,旋轉90度要做的處理多了幾步。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>繞X軸旋轉</title> <style type="text/css"> *{ margin: 0; padding: 0; } #box{ margin: 50px auto; border: 1px solid blue; } #box,.container,.front,.back{ width: 200px; height: 200px; } .container{ position: relative; transform-style: preserve-3d; transition: all 1s linear; } .container:hover{ transform: rotateX(90.1deg); } .front,.back{ position: absolute; top: 0; left: 0; backface-visibility: hidden; color: #fff; font-size: 40px; text-align: center; line-height: 200px; } .front{ transform: translateZ(100px); background: red; } .back{ background: green; transform: rotateX(-90deg) translateZ(100px); } </style> </head> <body> <div id="box"> <div class="container"> <div class="front"></div> <div class="back"></div> </div> </div> </body> </html>
看程式碼不難發現,其實旋轉多少度的本質都是一樣的,但是旋轉90度相對來說在開始旋轉的處理要進行在Y軸方向的移動。因為如果不進行Y軸方向的移動,旋轉90度後兩個面成T字形,而我們需要他們成L字形。
同時,再次強調,某個面旋轉的同時它的座標系也會發生變化,所以一定要注意動作的先後順序。這個可以自己畫一個三維座標系來幫助理解。
最後一點,在進行大盒子的旋轉時,大家可能會看到我的程式碼中:
.container:hover{
transform: rotateX(90.1deg);
}
寫90deg在firefox是正常的,但是在chrome中你的滑鼠放在盒子上會出現閃動的情況,但是你寫大於90就可以解決,具體原因暫時不詳。
在測試的過程中我使用了最新的chrome瀏覽器,所以省略了其中的相容性語句,在實際的使用過程中,一定要加上相容性語句。
相關推薦
css3 3D旋轉特效
最近自己的網站正在製作,由於是個人網站,所以我傲嬌的拋棄了IE,痛快的用起了css3和html5的諸多特效,然而問題亦隨之而來。這篇文章的主要講解在使用css3的3D旋轉的時候遇到的文章,錯誤之處,還望各位看官老爺評論中指出。 3D旋轉,難點在與其處在一個三維的空間中,我們
CSS3 3D旋轉立方
一、3D中的透視 1、透視是我們觀察事物的方式 在美術學中,有一種畫法叫做透視畫法,他讓我們對所觀察的物體從二維拓展到三維,也就是說,平面的物體變成了立體,佔據了獨自的空間。請看下圖: 2、從二維到三維
HTML5、CSS3實現旋轉特效
利用CSS3的transiton屬性,進行控制元件的旋轉,並通過設定旋轉時間,實現特效。 效果連線:http://runjs.cn/detail/vkmy8obr 例項程式碼:直接複製進html執行即
基於css3的3D立方體旋轉特效 (先translate與先rotate的不同)
3D變換基於幾個比較重要的屬性,perspective,translateZ,preserve-3d; 格式: 舞臺(perspective) 容器(3D, preserve-3d) 內容 3D實現立方體盒子: transform的4
使用純CSS3實現一個3D旋轉的書本
tom data -m 過去 截取 ood post clas kit 有一些前沿的電商站點已經開始使用3D模型來展示商品並支持在線定制,而當中圖書的展示是最為簡單的一種,無需復雜的建模過程,使用圖片和CSS3的一些變換就可
jquery環形3D立體旋轉特效
jquery環形3D立體旋轉特效 作者/程式碼整理:站長素材 (轉載請附加本文地址,帶有“懶人原生”字樣的謝絕轉載)釋出日期:2013-07-20 立體效果比較強的 j
實現CSS3 3D圍繞旋轉
本案例主要使用了CSS3中的變換transform和動畫animation屬性,實現了跑馬燈效果,詳細的解釋在程式碼中的註釋中。 <!DOCTYPE html> <html> <head> <meta charset="UTF
低調奢華 CSS3 transform-style 3D旋轉
10 <!DOCTYPE html> 11 <html> 12 <head> 13 <title>transform-style實現Div的3D旋轉-柯樂義</title> 14 <style> 15 *{font-size
css3 js實現3D旋轉效果
用css3和js實現3D旋轉的效果,主要使用到css3 transform中的一些屬性:perspective,rotate,translate。 下面主要介紹一些transform中的屬性的效果和作
CSS3實現3D旋轉選單導航
一、效果圖 二、程式碼 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>製作3D旋轉導航<
CSS3中的3D旋轉 rotate、3D位移 translate
這裡只考慮 chrome 的相容。 3DrotateDemo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <t
HTML5 CSS3 專題 :誘人的例項 3D旋轉木馬效果相簿
首先說明一下創意的出處:http://www.zhangxinxu.com/study/201209/pictures-3d-slide-view.html(張鑫旭的部落格 ),對前臺感興趣的可以沒事去看看他的部落格,很給力~這篇部落格的目的是因為上篇HTML5 CSS3專題
html5 canvas文字標籤雲3D旋轉動畫特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &
【CSS3進階】酷炫的3D旋轉透視
之前學習 react+webpack ,偶然路過 webpack 官網 ,看到頂部的 LOGO ,就很感興趣。 最近覺得自己 CSS3 過於薄弱,想著深入學習一番,遂以這個 LOGO 為切入口,好好研究學習了一下相關的 CSS3 屬性。webpack 的 LOGO 動畫效果乍看不是很難,深入瞭解之後,覺得內
css3實現的發光屏幕旋轉特效
*{ margin: 0; padding: 0; } *, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }http://www.kmnk03
CSS3(3D骰子)
html utf-8 pos rspec oct sla tle tran -- <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <t
手把手教你玩轉 CSS3 3D 技術(轉載)
是不是 col 默認 占滿 概念 ebe 說明 adb relative css3的3d起步 要玩轉css3的3d,就必須了解幾個詞匯,便是透視(perspective)、旋轉(rotate)和移動(translate)。透視即是以現實的視角來看屏幕上的2D事物,從而展現3
CSS3 3D環境實現立體 魔方效果代碼
3d 魔方 css 環境實現 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>魔方</title>
CSS3:3D環繞實現
-a 都在 音樂 keyframes 圖片路徑 art png posit borde CSS3:3D環繞實現篇 廢話不多說,直接給大家看效果:[不僅有背景,還有音樂] 大神請繞道:小白請繼續往下看: 是不是心動了呢,心動不如行動:代碼在手,天下我有,表白利器可不要錯過了