DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 一組夢幻般的CSS3動畫按鈕效果
一組夢幻般的CSS3動畫按鈕效果
編輯:CSS詳解     

 下面是在線演示,把鼠標放在按鈕上試試,有驚喜哦!(溫馨提示:如果不顯示請刷新頁面,在 Chrome,Firefox 和 Safari 浏覽器中效果最佳。)

在線演示地址:http://jsfiddle.net/lhb25/9EcuV/8/embedded/result/

HTML 部分非常簡單,五種效果對應的class為:praticle、cells、jelly、blobbs、chase,代碼如下:

1. <section>

2. <div class="particle"></div>

3. <div class="cells"></div>

4. <div class="jelly"></div>

5. <div class="blobbs"></div>

6. <div class="chase"></div>

7. </section>這些精美的效果用到了 CSS3 border-radius(圓角)、box-shadow(陰影)、transition(變形)、transform(轉換)和 animation(動畫)等特性,公共部分的完整代碼如下:

1. section > div {

2. display: inline-block;

3. position: relative;

4. width: 200px;

5. height: 200px;

6. margin: 0px auto;

7. border-radius: 50%;

8. border: 10px solid hsla(0,0%,0%,。7);

9. box-shadow: inset 0 15px 15px -5px hsla(0,0%,100%,。7),

10. inset 0 -5px 10px 3px hsla(0,0%,0%,。6),

11. 0 8px 10px 2px hsla(0,0%,0%,。3);

12.

13. background-position: center;

14.

15. -webkit-transform: scale3d(。66,。66,1);

16. -moz-transform: scale(。66);

17. -ms-transform: scale(。66);

18. -o-transform: scale(。66);

19. transform: scale(。66);

20.

21. -webkit-transition: -webkit-transform .5s cubic-bezier(。32,0,。15,1);

22. -moz-transition: -moz-transform .5s cubic-bezier(。32,0,。15,1);

23. -ms-transition: -ms-transform .5s cubic-bezier(。32,0,。15,1);

24. -o-transition: -o-transform .5s cubic-bezier(。32,0,。15,1);

25. transition: transform .5s cubic-bezier(。32,0,。15,1);

26. }

27.

28. section > div:hover {

29. cursor: none;

30. -webkit-transform: scale3d(1,1,1);

31. -moz-transform: scale(1);

32. -ms-transform: scale(1);

33. -o-transform: scale(1);

34. transform: scale(1);

35.

36. -webkit-transition: -webkit-transform .2s cubic-bezier(。32,0,。15,1);

37. -moz-transition: -moz-transform .2s cubic-bezier(。32,0,。15,1);

38. -ms-transition: -ms-transform .2s cubic-bezier(。32,0,。15,1);

39. -o-transition: -o-transform .2s cubic-bezier(。32,0,。15,1);

40. transition: transform .2s cubic-bezier(。32,0,。15,1);

41. }這段代碼看起來很長很復雜,其實大部分是兼容性代碼,精簡以後的代碼如下:

1. section > div {

2. display: inline-block;

3. position: relative;

4. width: 200px;

5. height: 200px;

6. margin: 0px auto;

7. /*對於正方形元素border-radius設置為50%剛好變成圓形*/

8. border-radius: 50%;

9. /*寬度為10px的、不透明度為0.7的黑色邊框效果*/

10. border: 10px solid hsla(0,0%,0%,。7);

11. /*通過邊框陰影實現立體按鈕效果,inset是內陰影效果*/

12. box-shadow: inset 0 15px 15px -5px hsla(0,0%,100%,。7),

13. inset 0 -5px 10px 3px hsla(0,0%,0%,。6),

14. 0 8px 10px 2px hsla(0,0%,0%,。3);

15. background-position: center;

16. /*初始縮放0.66倍*/

17. transform: scale(。66);

18. /*在失去焦點時根據自定義的貝塞爾時間曲線做動畫變換效果*/

19. transition: transform .5s cubic-bezier(。32,0,。15,1);

20. }

21.

22. section > div:hover {

23. cursor: none;

24. /*懸停時恢復原始大小*/

25. transform: scale(1);

26. /*鼠標懸停時根據自定義的貝塞爾時間曲線做動畫變換效果*/

27. transition: transform .2s cubic-bezier(。32,0,。15,1);

28. }

上面的代碼中用到了貝塞爾曲線,在數學的數值分析領域中,貝塞爾曲線又稱貝賽爾曲線(Bézier曲線)是電腦圖形學中相當重要的參數曲線。更高維度的廣泛化貝塞爾曲線就稱作貝塞爾曲面,其中貝塞爾三角是一種特殊的實例。

貝塞爾曲線於1962年,由法國工程師皮埃爾。貝塞爾(Pierre Bézier)所廣泛發表,他運用貝塞爾曲線來為汽車的主體進行設計。貝塞爾曲線最初由Paul de Casteljau於1959年運用de Casteljau算法開發,以穩定數值的方法求出貝塞爾曲線。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved