搜尋
首頁web前端css教學關於css3的動畫效果animate的使用說明及瀏覽器相容的介紹

關於css3的動畫效果animate的使用說明及瀏覽器相容的介紹

Jun 22, 2018 pm 01:43 PM
animatecss3動畫瀏覽器相容

這篇文章主要介紹了關於css3的動畫效果animate的使用說明及瀏覽器兼容的介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

昨天突然看到jing.fm(這個音樂網站非常不錯,很多效果我都很喜歡,如果你有興趣,可以去圍觀下)上音樂播放時,專輯的轉動效果很不錯,所以準備自己動手寫下,以備後用。結果第一次使用animate就遇到了坑爹的事情,特吐槽下

好久沒更新blog,上次發文(11月8日)到現在剛好一個月,期間項目上的東西比較多,一時覺得時間比較緊,沒來得及更新。這個星期總算是告一段落,補上幾篇技術性的文章。好吧,第一篇是關於css3動畫的使用。
昨天突然看到jing.fm(這個音樂網站非常不錯,很多效果我都很喜歡,如果你有興趣,可以去圍觀下)上音樂播放時,專輯的轉動效果很不錯,所以準備自己動手寫下,以備後用。結果第一次使用animate就遇到了坑爹的事情,特吐槽下。
一、最終的效果

如上圖所示,最終是想讓這張專輯的圖片轉動起來,模擬出唱片播放的效果(你可以去jing .fm上看看真實的效果,很贊,現在很多音樂網站都添加了這個效果)。
二、結構程式碼

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=&#39;utf-8&#39;> 
<title>音乐专辑播放模拟</title> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 
</head> 
<body> 
<p id="bd"> 
<p id="musicBox"> 
<p class="cover rotateCD"></p> 
<p class="mask"></p> 
</p> 
</p> 
</body> 
</html>

從上面的程式碼可以看出,由於是使用css3強大的動畫效果,所以我的結構定義的非常簡單(在符合語意的前提下),同時沒有引用到javascript腳本檔。
musicBox來限定外圍框的大小,內部的cover用來顯示專輯封面圖片,這張圖片是下圖左邊圖片這樣的,四四方方,不是圓形,所以我在後面做了個mask的p ,它不做其他事情,只是用來容納一個遮罩(下圖右邊圖片),蓋住圖片圓形之外的部分。
    
三、css3樣式表 

@charset utf-8; 
/* common: rotateCD */ 
@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
} 
100%{ 
-webkit-transform : rotate(360deg); 
} 
} 
@-moz-keyframes myrotate{ 
0%{ 
-moz-transform : rotate(0deg); 
} 
100%{ 
-moz-transform : rotate(360deg); 
} 
} 
@-ms-keyframes myrotate{ 
0%{ 
-ms-transform : rotate(0deg); 
} 
100%{ 
-ms-transform : rotate(360deg); 
} 
} 
@-o-keyframes myrotate{ 
0%{ 
-o-transform : rotate(0deg); 
} 
100%{ 
-o-transform : rotate(360deg); 
} 
} 
@keyframes myrotate{ 
0%{ 
transform : rotate(0deg); 
} 
100%{ 
transform : rotate(360deg); 
} 
} 
.rotateCD{ 
-webkit-animation: myrotate 9.5s infinite linear; 
-moz-animation: myrotate 9.5s infinite linear; 
-ms-animation: myrotate 9.5s infinite linear; 
-o-animation: myrotate 9.5s infinite linear; 
animation: myrotate 9.5s infinite linear; 
-webkit-animation-play-state: running; 
-moz-animation-play-state: running; 
-ms-animation-play-state: running; 
-o-animation-play-state: running; 
animation-play-state: running; 
} 
/* module: bd */ 
#bd{width: 960px;margin: 200px auto 0;} 
/* module: musicBox */ 
#musicBox{position: relative;width: 430px;height: 430px;margin: 0 auto;overflow: hidden;} 
#musicBox .cover{width: 300px;height: 300px;margin: 65px;background: url(../img/music1.jpg) 0 0 no-repeat;} 
#musicBox .mask{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(../img/playerMask.png) 0 0 no-repeat;}

rotateCD這部分的程式碼相容了多種高階瀏覽器(當然支援css3的),設定了動畫執行的時間和其他一些設置,你可以查詢animate的更多知識來深入了解。
對於上面的關於動畫關鍵影格keyframes的寫法,踩了比較多的坑,一開始,我是看《HTML5與CSS3權威指南》上的例子,它只寫了chrome下的寫法(比較坑爹,我猜估計是作者認為其他瀏覽器的寫法與此類似,所以讓讀者自己去摸索),我想當然的把其他瀏覽器的兼容性rotate設定寫成了,如下面的程式碼所示:

@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
-moz-transform : rotate(0deg); 
-ms-transform : rotate(0deg); 
-o-transform : rotate(0deg); 
transform : rotate(0deg); 
} 
....

這樣導致的結果就是,chrome和safari下動畫正常,FF、opera和IE下均無動畫。其實這部分很好理解,myrotate的關鍵影格只是對webkit做了特殊說明,其他瀏覽器根本對此置之不理,所以沒有動畫的效果。
因此,我們在寫關鍵影格適配樣式的時候,一定要寫成下面的形式:

@-webkit-keyframes myrotate{ 
0%{ 
-webkit-transform : rotate(0deg); 
} 
... 
@-moz-keyframes myrotate{ 
0%{ 
-moz-transform : rotate(0deg); 
} 
... 
@-ms-keyframes myrotate{ 
0%{ 
-ms-transform : rotate(0deg); 
} 
... 
@-o-keyframes myrotate{ 
0%{ 
-o-transform : rotate(0deg); 
} 
... 
@keyframes myrotate{ 
0%{ 
transform : rotate(0deg); 
} 
...

opera瀏覽器還有個比較怪異的地方,它偏愛@keyframes myrotate{ ...},而對@-o-keyframes myrotate{...}不感冒,所以你發現兩者只存其一的時候,前者可以實現動畫,而後者不能實現動畫效果。我一直對此很是不解,後來找到關於opera的介紹,說它是嚴格的執行W3C網頁標準。這樣想想,就明白了為什麼它如此偏愛@keyframes myrotate{...}了。
四、總結
css3看起來非常美好,但是實際使用中還是存在不少的不確定性。如果你不能看到已經實現的程式碼模板,你很難確信自己的程式碼格式就一定正確。所以你可以到一些不錯的網站來觀察各種動畫效果,選擇自己喜歡的動畫並產生程式碼,下載下來後再依照自己的需求來寫動畫程式碼。這樣會讓你的動畫效果實現起來事半功倍(不要擔心它達不到你的要求,上面有很多的效果,你可以自己組合,只要你的想像力夠豐富)。
好吧,本文到此結束。
PS:文中使用的瀏覽器為chrome(21.0.1180.15)、safari5.1.7(7534.57.2)、opera(12.11)、FF(17.0.1)和IE10(10.0. 9200.16438)。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

CSS中使用Flexbox來達到居中效果的方法實作

#

如何使用css3實作input輸入框顏色漸變發光的效果

#

以上是關於css3的動畫效果animate的使用說明及瀏覽器相容的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
這麼多顏色鏈接這麼多顏色鏈接Apr 13, 2025 am 11:36 AM

最近有一系列有關顏色的工具,文章和資源。請允許我通過將它們四捨五之後關閉幾個標籤,以供您享受。

自動利潤在Flexbox中的工作方式自動利潤在Flexbox中的工作方式Apr 13, 2025 am 11:35 AM

羅賓以前已經介紹過這一點,但是我在過去的幾周里聽到了一些關於它的困惑,看到另一個人在解釋它,我想

移動彩虹移動彩虹Apr 13, 2025 am 11:27 AM

我絕對喜歡三明治網站的設計。在許多美麗的功能中,這些標題是滾動時帶有彩虹的下線。它不是

新年,新工作?讓我們做一個網格驅動的簡歷!新年,新工作?讓我們做一個網格驅動的簡歷!Apr 13, 2025 am 11:26 AM

許多流行的簡歷設計通過以網格形狀鋪設部分來充分利用可用的頁面空間。讓我們使用CSS網格創建一個佈局

將用戶擺脫過多習慣的一種方法將用戶擺脫過多習慣的一種方法Apr 13, 2025 am 11:25 AM

頁面重新加載是一回事。有時,當我們認為它沒有響應或認為新內容可用時,我們會刷新頁面。有時我們只是生氣

域驅動的設計與React域驅動的設計與ReactApr 13, 2025 am 11:22 AM

關於如何在React世界中組織前端應用的指導很少。 (只需移動文件,直到“感覺正確”,大聲笑)。真相

檢測非活動用戶檢測非活動用戶Apr 13, 2025 am 11:08 AM

大多數情況下,您並不真正在乎用戶是否積極參與或暫時非活動。不活躍,意思,也許他們

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufoo一直在集成方面非常出色。他們與特定應用程序(例如廣告系列顯示器,MailChimp和Typekit)進行集成,但他們也

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境