純CSS3實(shí)現(xiàn)給頭像加個(gè)光芒四射且旋轉(zhuǎn)的背景動(dòng)畫效果

HTML代碼
HTML代碼結(jié)構(gòu)很簡(jiǎn)單,跟之前那篇文章使用的相同:
<div id="raysDemoHolder">
<a href="/" id="raysLogo">WebHek</a>
<div id="rays"></div>
</div>
最外面的div作為父元素,它的position是relative,有固定的高和寬度,有兩個(gè)子元素:一個(gè)用來(lái)放logo,一個(gè)用來(lái)做光芒效果的容器。
CSS代碼
我們這里要用純CSS來(lái)實(shí)現(xiàn),需要使用CSS3的動(dòng)畫技術(shù),這里用到的CSS語(yǔ)法是@keyframes。我們的基本實(shí)現(xiàn)原理是用keyframes,從rotate(0deg)旋轉(zhuǎn)到rotate(360deg):
/* 用來(lái)實(shí)現(xiàn)動(dòng)畫的keyframes; 從0度旋轉(zhuǎn)到360度 */
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* 實(shí)現(xiàn)光線輻射效果 */
#raysDemoHolder {
position: relative;
width: 490px;
height: 490px;
margin: 100px 0 0 200px;
}
#raysLogo {
width: 300px;
height: 233px;
text-indent: -3000px;
background: url(logo.png) 0 0 no-repeat;
display: block;
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
#rays { /* 表現(xiàn)動(dòng)畫效果 */
background: url(rays.png) 0 0 no-repeat;
position: absolute;
top: -100px;
left: -100px;
width: 490px;
height: 490px; </p> <p> /* microsoft ie */
animation-name: spin;
animation-duration: 40000ms; /* 40 seconds */
animation-iteration-count: infinite;
animation-timing-function: linear;
}
#rays:hover {
/* animation-duration: 10000ms;*/
/* 10 seconds - speed it up on hover! */
/* resets the position though! sucks */
}
通過(guò)使用animation-timing-function, animation-duration, 和 animation-iteration-count,我們就能實(shí)現(xiàn)線性勻速、旋轉(zhuǎn)不停的動(dòng)畫效果!你會(huì)發(fā)現(xiàn)使用純CSS制作的動(dòng)畫比用js制作的動(dòng)畫要順滑的多。
現(xiàn)在我們有了一個(gè)問(wèn)題,早期的Opera瀏覽器不支持@keyframes語(yǔ)法。幸運(yùn)的是,我們可以通過(guò)其它方法實(shí)現(xiàn)這個(gè)動(dòng)畫:
/* boooo opera */
-o-transition: rotate(3600deg); /* 可用 */
只需要簡(jiǎn)單的一段代碼。而對(duì)于IE瀏覽器,我試圖用-ms-transform / -ms-translation在IE9里運(yùn)行它,但不好用。從IE10才開(kāi)始支持keyframes語(yǔ)法。
不斷的改進(jìn)自己之前的代碼是個(gè)好習(xí)慣。雖然這個(gè)純CSS實(shí)現(xiàn)的動(dòng)畫并不能在IE9里正確的運(yùn)行,但I(xiàn)E10+,火狐,谷歌瀏覽器里都工作的非常好。如果必須要支持IE9,你仍然可以使用CSS條件判斷語(yǔ)法和JavaScript配合實(shí)現(xiàn)js版的效果。
相關(guān)文章
CSS3基于背景裁剪(background-clip)實(shí)現(xiàn)的文本標(biāo)題透視特效源碼
這是一款CSS3基于背景裁剪(background-clip)實(shí)現(xiàn)的文本標(biāo)題透視特效源碼。畫面上的外星球與飛船背景中央呈現(xiàn)出帶有背景剪切透視的文本視覺(jué)效果。同時(shí)可響應(yīng)鼠標(biāo)的移動(dòng)呈2017-11-17CSS3+SVG鏤空效果質(zhì)感背景小圖標(biāo)按鈕
一款用CSS3和SVG實(shí)現(xiàn)的質(zhì)感背景小圖標(biāo)2014-04-23css實(shí)現(xiàn)的鼠標(biāo)懸停360度背景圖片做動(dòng)畫旋轉(zhuǎn)效果
一款純css實(shí)現(xiàn)的一個(gè)鼠標(biāo)懸停背景圖片做動(dòng)畫旋轉(zhuǎn)效果,摒棄掉煩人的js2014-04-03css3實(shí)現(xiàn)背景圖片拉伸效果像桌面壁紙一樣
使用css3 屬性:background-size可以輕松實(shí)現(xiàn)像桌面壁紙一樣拉伸,下面為大家詳細(xì)介紹下具體的相關(guān)實(shí)現(xiàn)過(guò)程,有此需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-19純CSS3實(shí)現(xiàn)的(橫向和豎向)的花格紋理背景及馬賽克效果
無(wú)需任何圖片和js腳本既可以實(shí)現(xiàn)形式多樣的花紋背景,包含橫向和豎向柵格背景、馬賽克背景等等2013-06-19css3 邊框、背景、文本效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了css3 邊框、背景、文本效果的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-03-21