小莫碎碎念
小莫見到很多**的翻轉效果很炫,忍不住手癢癢,遂摩拳擦掌打算研究一番,無奈17素材網上很多成型的外掛程式都比較複雜,不適合小莫這樣的小白,所以找到乙個簡單的栗子趕緊拿來和眾小白分享,大神請繞路,大神請繞路,大神請繞路,重要的事情說三遍!
雖然小莫研究了一番,但自我感覺還沒吃到css3的精髓,下面只是小莫一些淺顯的理解,如有紕漏,還望眾小白海涵,眾大神不吝賜教。
由於是直接從網上找的栗子,所以直接上乾貨,省略實現思路這一模組。
最終**
1**分析首先,先來科普幾個官方定義:doctype html
>
2<
html
>
3<
head
>
4<
meta
charset
="utf-8"
>
5<
style
>6/*
entire container, keeps perspective */7
.flip-container
12/*
flip the pane when hovered
*/13
.flip-container:hover .flipper
1718
.flip-container, .front, .back
2223
/*flip speed goes here
*/24
.flipper
3031
/*hide back of pane during swap
*/32
.front, .back
4546
/*front pane, placed above back
*/47
.front
5051
/*back, initially hidden pane
*/52
.back
57style
>
5859
head
>
60<
body
>
61<
div
class
="flip-container"
>
62<
div
class
="flipper"
>
63<
div
class
="front"
>
64 front
65div
>
66<
div
class
="back"
>
67 back
68div
>
69div
>
70div
>
71body
>
72html
>
perspective 屬性定義 3d 元素距檢視的距離,以畫素計。該屬性允許您改變 3d 元素檢視 3d 元素的檢視。當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身。通俗點說就是父元素新增這個屬性後,子元素可以呈現3d的效果。比方說像下面左圖介樣,如果不設定它,就會像右邊介樣:
transform 屬性向元素應用 2d 或 3d 轉換。該屬性允許我們對元素進行旋轉、縮放、移動或傾斜。也就是說我們的動畫效果主要是依靠它滴,這是乙個神奇的屬性,只有你想不到的沒有它做不到的!(誇張手法,誇張手法,見諒見諒)
transition 屬性是乙個簡寫屬性,用於設定四個過渡屬性。簡單來說這是翻轉動畫的執行者。
transform-style 屬性規定如何在 3d 空間中呈現被巢狀的元素。這個屬性可以有兩種值:flat,子元素將不保留其 3d 位置(也就是說,當transform-style為flat的時候,再對其子元素改變3d位置則不起作用);preserve-3d子元素將保留其 3d 位置。
backface-visibility 屬性定義當元素不面向螢幕時是否可見。
好,下面小莫課堂正式開課啦!
既然要實現翻轉效果,那首先要定義乙個雙面div,預設顯示正面,滑鼠hover顯示反面,滑鼠離開則顯示正面,但在這之前我們需要乙個裝雙面div的盒子,就像下面這樣:
1盒子有了,下面就要定義雙面div了,就像一張撲克牌,雖然有兩面但它仍舊是乙個整體,我們來定義一張撲克牌...呃,定義乙個雙面div:<
div
class
="flip-container"
>23
div>
4<
style
>
5.flip-container
10style
>
1下面就是撲克牌的正反面,也就是雙面div正反面的內容:<
div
class
="flipper"
>23
div>
4<
style
>
5.flip-container
18style
>
1盒子、雙面div、正反面內容都有了,萬事俱備只欠「翻轉」這個東風啦:<
div
class
="front"
>
2 front
3div
>
4<
div
class
="back"
>
5 back
6div
>
7<
style
>
8.front, .back
2122
.front
2526
.back
31style
>
1當滑鼠hover到盒子上則執行過度動畫,這裡沒有把hover加到雙面div上是因為,雙面div在旋轉過程中元素的位置大小都會發生變化:.flip-container:hover .flipper
到此為止,翻轉功能就算是圓滿啦!
小莫在找栗子的時候還找到了另乙個品相不太好的栗子,就是不給雙面div加翻轉動作,而將翻轉動作加到正反面div上,在只有正反面的時候這樣做顯然有些累贅,但如果是多面內容可能就不同,這種方法或許更靈活些,當然現在小莫的技能還沒點到那個級別,多面翻轉的功能留著日後實現吧!
總結
一入css3深似海,從此xx是路人!(這裡xx泛指各種動畫外掛程式,請自行腦補。)為什麼總覺得沒有個總結就不算是寫完了呢?這是個不好的習慣,咳咳。(寫**湊字數留下的惡習,見諒見諒)
純CSS3實現的標籤效果
1.效果分析 純css3實現的標籤效果,如圖1所示,看看demo。該標籤主要有三個部分組成,左側的三角形 右側的圓角矩形和文字前面的小圓點。重點在左側三角形和文字前面圓點的實現。2.技術難點 三角形利用寬和高為零的元素的邊框實現。將邊框設定為12px solid transparent,然後將右側邊...
純CSS3實現的標籤效果
1.效果分析 純css3實現的標籤效果,如圖1所示,看看demo。該標籤主要有三個部分組成,左側的三角形 右側的圓角矩形和文字前面的小圓點。重點在左側三角形和文字前面圓點的實現。2.技術難點 三角形利用寬和高為零的元素的邊框實現。將邊框設定為12px solid transparent,然後將右側邊...
純css3實現滾動的公告
前情 老闆說乙個好的員工都是讓甲方做選擇題而不是問答題。今天需要上乙個公告,基於 前情 準備了三個版本。第一版 橫向單條從右往左滾動。我們來嘍,我們來嘍,歡迎來到我的直播間!我們來嘍,我們來嘍,歡迎來到我的直播間!hornotice hornotice hormove hornotice hormo...