首頁  >  文章  >  web前端  >  如何使用html5與css3完成google塗鴉動畫

如何使用html5與css3完成google塗鴉動畫

PHP中文网
PHP中文网原創
2017-03-16 13:17:421829瀏覽

今天我們將介紹,如何使用css3完成google塗鴉動畫。當你點擊demo頁面的【開始】按鈕之後,頁面中的騎手和馬匹將會運動起來
這裡需要強調的一點是,ie不支持css3的動畫屬性,再次抱怨下萬惡的ie。但我們不能以此為理由不去擁抱css3。
我們先來看html程式碼。

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<link rel="stylesheet" type="text/css" 
href="css/google-doodle-animation-in-css3-without-javascript.css"/> 
</head> 
<body> 
<p id="logo"> 
<p 
class="frame"> 
<img src="img/muybridge12-hp-v.png"/> 
</p> 
<label for="play_button" 
id="play_label"></label> 
<input type="checkbox" id="play_button" 
name="play_button"/> 
<span id="play_image"> 
<img 
src="img/muybridge12-hp-p.jpg"/> 
</span> 
<p 
class="horse"></p> 
<p class="horse"></p> 
<p class="horse"></p> 
</p> 
</body> 
</html>

下面是部分css。

*{margin:0px;padding:0px;} 
#logo{position: relative;} 
.horse{ 
width:469px; 
height:54px; 
background: 
url(&#39;../img/muybridge12-hp-f.jpg&#39;); 
} 
.frame{position:absolute;left:0;top:0;z-index: 1;} 
#play_button{display: 
none;} 
#play_label{ 
width:67px; 
height:54px; 
display:block; 
position: absolute; 
left:201px; 
top:54px; 
z-index: 2; 
} 
#play_image{ 
position: absolute; 
left:201px; 
top:54px; 
z-index: 0; 
overflow: hidden; 
width: 68px; 
height: 55px; 
} 
#play_image img{ 
position: absolute; 
left: 0; 
top: 0; 
}

這部分程式碼沒太大難度,我就不做詳細講解了。 css基礎不是很紮實的讀者,也許會疑惑【開始】按鈕是如何實現定位的。可以自行閱讀position屬性,了解absolute具體作用。
以下是上述html和css程式碼完成的頁面效果。
下面我們來介紹如何產生動畫效果。我們首先需要定義關鍵幀,他規定動畫在不同階段的效果。
我們創建了一個名為horse-ride的關鍵幀,針對chrome和firefox需要在前面添加-webkit-或者是-moz-前綴。 0%和100%分別程式碼開始和結束,可以根據需要增加新的case,例如50%時的動畫效果。

@-webkit-keyframes horse-ride { 
% {background-position: 0 0;} 
% 
{background-position: -804px 0;} 
} 
@-moz-keyframes horse-ride { 
% 
{background-position: 0 0;} 
% {background-position: -804px 0;} 
}

下面,我們來為horse加上css3的動畫效果。

#play_button:checked ~.horse{ 
-webkit-animation:horse-ride 0.5s 
steps(12,end) infinite; 
-webkit-animation-delay:2.5s; 
-moz-animation:horse-ride 0.5s steps(12,end) infinite; 
-moz-animation-delay:2.5s; 
background-position: -2412px 0; 
-webkit-transition: all 2.5s cubic-bezier(0.550, 0.055, 0.675, 0.190); 
-moz-transition: all 2.5s cubic-bezier(0.550, 0.055, 0.675, 0.190); 
}

這裡首先介紹:checked和~,:checked是偽類,指當#play_button選取時的css效果,~指的是#play_button的兄弟節點。
  接下來介紹.horse相關的css屬性。 animation中我們使用了4個值,依序代表:關鍵影格(我們上面定義的horse-ride),動畫間隔時間,動畫效果和執行次數。之後我們又透過animation-delay設定動畫延遲時間。透過transition和background-position集合起來,設定背景的過渡動畫。
  最後我們為【開始】按鈕加入動畫效果。

#play_button:checked ~#play_image img{ 
left:-68px; 
-webkit-transition: 
all 0.5s ease-in; 
-moz-transition: all 0.5s ease-in; 
}


大家可以自己動手嘗試開發了。

相關文章:

基於純CSS3的6種手繪塗鴉按鈕效果

基於javascript html5 canvas畫筆顏色/粗細/橡皮的塗鴉板

Html5簡單實作塗鴉板的範例程式碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn