實(shí)現(xiàn)動(dòng)畫(huà)的各種方式

前提條件,要讓元素左右上下移動(dòng)位置,首頁(yè)就需要設(shè)置position屬性,值為absolute,fixed,relative皆可

一、css

(1)animation

? ? ? ? 首先需要給要移動(dòng)的元素設(shè)置animation屬性:在這個(gè)里面設(shè)置名稱(chēng)以及移動(dòng)時(shí)間,如果時(shí)間不寫(xiě)會(huì)默認(rèn)為0。

? ? 接下來(lái)需要@keyframes name(剛剛設(shè)置的名稱(chēng))在這個(gè)里面就可以設(shè)置你需要實(shí)現(xiàn)的效果,

form {? ? 多個(gè)屬性分號(hào)隔開(kāi)? } to{? ? ? ? }

或者 寫(xiě)成百分比的格式

0%{????}? 20%{? ? }? ?40%{? ? }?

animation屬性相當(dāng)于一個(gè)總的屬性,可以細(xì)分為各個(gè),詳情如下

@keyframes????????規(guī)定動(dòng)畫(huà)。????

animation????????????所有動(dòng)畫(huà)屬性的簡(jiǎn)寫(xiě)屬性,除了 animation-play-state 屬性。?

animation-name????規(guī)定 @keyframes 動(dòng)畫(huà)的名稱(chēng)。?

animation-duration規(guī)定動(dòng)畫(huà)完成一個(gè)周期所花費(fèi)的秒或毫秒。?

animation-timing-function????????規(guī)定動(dòng)畫(huà)的速度曲線(xiàn)。默認(rèn)是 "ease"。?

animation-delay????????規(guī)定動(dòng)畫(huà)何時(shí)開(kāi)始。?

animation-iteration-count????規(guī)定動(dòng)畫(huà)被播放的次數(shù)。?

animation-direction????????規(guī)定動(dòng)畫(huà)是否在下一周期逆向地播放。?

animation-play-state????????規(guī)定動(dòng)畫(huà)是否正在運(yùn)行或暫停。?

animation-fill-mode????????規(guī)定對(duì)象動(dòng)畫(huà)時(shí)間之外的狀態(tài)。?

注:要兼容各個(gè)瀏覽器,需要加入不同的前綴

@-moz-keyframes name/* Firefox */

@-webkit-keyframes name/* Safari 和 Chrome */

@-o-keyframes name/* Opera */

代碼如下:

.demo {

????position:absolute;

????width:300px;

????height:20px;

????border:1px solid #00c892;

????animation:myfirst 3s;

}

@keyframes myfirst {

????/*from {background: red; left: 20px;}*/

????/*to {background: yellow; left: 300px;}*/

? ? 0% {background:black;left:10px}

????20%{background:red;left:20px;}

????40%{background:yellow;left:40px;top:30px}

????80%{background:#5DADF1;left:90px}

}

(2)transition

transition:all 2s linear;

div:hover{

????background:yellow;

????transform:rotate(360deg);

????width:800px;

????height:300px;

}


transition????????????????????????????簡(jiǎn)寫(xiě)屬性,用于在一個(gè)屬性中設(shè)置四個(gè)過(guò)渡屬性。?

transition-property?????????????規(guī)定應(yīng)用過(guò)渡的 CSS 屬性的名稱(chēng)。?

transition-duration???????????????定義過(guò)渡效果花費(fèi)的時(shí)間。默認(rèn)是 0。?

transition-timing-function????規(guī)定過(guò)渡效果的時(shí)間曲線(xiàn)。默認(rèn)是 "ease"。?

transition-delay????????????????????規(guī)定過(guò)渡效果何時(shí)開(kāi)始。?

注:瀏覽器需要兼容各個(gè)瀏覽器,前綴同上

二、用計(jì)時(shí)器實(shí)現(xiàn)動(dòng)畫(huà)

主要是注意setInterval里面的this指向,可以用bind(this)解決

window.onload =function() {

????var oDiv1 =document.getElementById("demo");

????oDiv1.onclick =function () {

????var timer =setInterval(function () {

????????this.style.width =this.offsetWidth -10 +"px";

????????if (this.offsetWidth ==10) {

????????????clearInterval(timer);

????????}

????}.bind(this),1000)

}

}

三、利用API? ?requestAnimationFrame

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,434評(píng)論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 2,117評(píng)論 0 2
  • gradient <gradient> 是一種 CSS數(shù)據(jù)類(lèi)型的子類(lèi)型,用于表現(xiàn)兩種或多種顏色的過(guò)渡轉(zhuǎn)變。<gra...
    DHFE閱讀 983評(píng)論 0 1
  • 變形--旋轉(zhuǎn) rotate() 旋轉(zhuǎn)rotate()函數(shù)通過(guò)指定的角度參數(shù)使元素相對(duì)原點(diǎn)進(jìn)行旋轉(zhuǎn)。它主要在二維空間...
    阿振_sc閱讀 980評(píng)論 1 5
  • 1.CSS3 邊框 border-radius CSS屬性用來(lái)設(shè)置邊框圓角。當(dāng)使用一個(gè)半徑時(shí)確定一個(gè)圓形;當(dāng)使用兩...
    garble閱讀 777評(píng)論 0 0

友情鏈接更多精彩內(nèi)容