看效果圖這些文字是不是很有立體的感覺,而這個(gè)立體的感覺并不是有投影和陰影來(lái)實(shí)現(xiàn)的,而是通過(guò)翻轉(zhuǎn)。
接下來(lái)我們來(lái)看一下源碼。首先是HTML代碼,非常簡(jiǎn)單,列出我們需要渲染的文字:
- <div class="foo">
- <span class="letter" data-letter="A">A</span>
- <span class="letter" data-letter="B">B</span>
- <span class="letter" data-letter="C">C</span>
- <span class="letter" data-letter="D">D</span>
- <span class="letter" data-letter="E">E</span>
- <span class="letter" data-letter="F">F</span>
- <span class="letter" data-letter="G">G</span>
- <span class="letter" data-letter="H">H</span>
- <span class="letter" data-letter="I">I</span>
- <span class="letter" data-letter="L">L</span>
- <span class="letter" data-letter="M">M</span>
- <span class="letter" data-letter="N">N</span>
- <span class="letter" data-letter="O">O</span>
- <span class="letter" data-letter="P">P</span>
- <span class="letter" data-letter="Q">Q</span>
- <span class="letter" data-letter="R">R</span>
- <span class="letter" data-letter="S">S</span>
- <span class="letter" data-letter="T">T</span>
- <span class="letter" data-letter="U">U</span>
- <span class="letter" data-letter="V">V</span>
- <span class="letter" data-letter="Z">Z</span>
- </div>
接下來(lái)是核心CSS3代碼,這里我們略去了控制頁(yè)面樣式的CSS代碼,把實(shí)現(xiàn)翻頁(yè)效果文字的CSS代碼提取出來(lái)。
- .letter{
- display: inline-block;
- font-weight: 900;
- font-size: 8em;
- margin: 0.2em;
- position: relative;
- color: #00B4F1;
- transform-style: preserve-3d;
- perspective: 400;
- z-index: 1;
- }
這樣我們就讓這些字母安安靜靜的排列起來(lái),并有了自己的背景顏色,等待強(qiáng)大的CSS3來(lái)渲染。
接下來(lái)我們要讓文字在鼠標(biāo)滑過(guò)的時(shí)候產(chǎn)生翻轉(zhuǎn)傾斜的動(dòng)畫。
- .letter:before, .letter:after{
- position:absolute;
- content: attr(data-letter);
- transform-origin: top left;
- top:0;
- left:0;
- }
- .letter, .letter:before, .letter:after{
- transition: all 0.3s ease-in-out;
- }
- .letter:before{
- color: #fff;
- text-shadow:
- -1px 0px 1px rgba(255,255,255,.8),
- 1px 0px 1px rgba(0,0,0,.8);
- z-index: 3;
- transform:
- rotateX(0deg)
- rotateY(-15deg)
- rotateZ(0deg);
- }
- .letter:after{
- color: rgba(0,0,0,.11);
- z-index:2;
- transform:
- scale(1.08,1)
- rotateX(0deg)
- rotateY(0deg)
- rotateZ(0deg)
- skew(0deg,1deg);
- }
- .letter:hover:before{
- color: #fafafa;
- transform:
- rotateX(0deg)
- rotateY(-40deg)
- rotateZ(0deg);
- }
- .letter:hover:after{
- transform:
- scale(1.08,1)
- rotateX(0deg)
- rotateY(40deg)
- rotateZ(0deg)
- skew(0deg,22deg);
- }
- 復(fù)制代碼
這里我們利用了CSS3的偽類before和after來(lái)快速構(gòu)造兩個(gè)相同的字母,然后利用transform屬性的rotateX,rotateY,rotateZ來(lái)翻轉(zhuǎn),再利用skew來(lái)時(shí)文字傾斜。
轉(zhuǎn)自:http://www.cnblogs.com/html5tricks/p/3653672.html
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。