CSS Transition的哥哥,CSS關(guān)鍵幀動(dòng)畫讓我們通過在CSS“時(shí)間軸”上定義點(diǎn)以及在這些點(diǎn)上參與的CSS屬性值來為CSS屬性設(shè)置動(dòng)畫。
使用JavaScript,我們可以類似地插入關(guān)鍵幀動(dòng)畫的重要狀態(tài),特別是當(dāng)關(guān)鍵幀動(dòng)畫已經(jīng)開始,迭代或完全結(jié)束時(shí)。
相關(guān)的事件是
animationstart
,
animationiteration
和
animationend
分別。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了布爾津免費(fèi)建站歡迎大家使用!
再一次,為了使現(xiàn)實(shí)更好,我們需要考慮支持3個(gè)事件的前綴版本的舊瀏覽器。
隨著中說,我們可以把以下內(nèi)容函數(shù)返回的受支持版本
animationstart
,
animationiteration
或
animationend
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
function
getanimationevent(suffix){
// enter "start", "iteration", or "end"
var
root = document.documentElement
var
suffix = suffix.toLowerCase()
var
animations = {
'animation'
:
'animation'
+ suffix,
'OAnimation'
:
'oAnimation'
+ suffix.charAt(0).toUpperCase() + suffix.slice(1),
// capitalize first letter of suffix
'MozAnimation'
:
'animation'
+ suffix,
'WebkitAnimation'
:
'webkitAnimation'
+ suffix.charAt(0).toUpperCase() + suffix.slice(1)
}
for
(
var
a
in
animations){
if
(root.style[a] !== undefined ){
return
animations[a]
}
}
return
undefined
}
// getanimationevent('start') // returns supported version of "animationstart" event as a string
// getanimationevent('iteration') // returns supported version of "animationiteration" event as a string
// getanimationevent('end') // returns supported version of "animationend" event as a string
//Example usage:
var
animationend = getanimationevent(
'end'
)
if
(animationend ){
element.addEventListener(animationend ,
function
(e){
// do something after end of keyframe animation
},
false
)
}
|
該
事件對象
一旦填充了一些屬性,如
event.elapsedTime
,它返回以秒為關(guān)鍵幀動(dòng)畫的持續(xù)時(shí)間。