css3動畫事件—webkitAnimationEnd與計時器time事件
發(fā)布時間:2013-01-31 17:12:49 作者:佚名
我要評論

用css3的animation完成一個動畫,當(dāng)只有這個動畫完成時才執(zhí)行令一個事件,比如讓動畫保持在終止的狀態(tài)或其他一些事件,關(guān)于這個問題,本文給出詳細(xì)的解決方案,感興趣的朋友可以了解下或許對你有所幫助
用css3的animation完成一個動畫,當(dāng)只有這個動畫完成時才執(zhí)行令一個事件,比如讓動畫保持在終止的狀態(tài)或其他一些事件。我們該怎么辦呢。
第一種方法:
用計時器,設(shè)定一個和動畫時長一樣的time,過time事件去執(zhí)行這個函數(shù)。
setTimeout(function(){ },time);
第二種方法:
當(dāng)-webkit-animation動畫結(jié)束時有一個webkitAnimationEnd事件,只要監(jiān)聽這個事件就可以了。
例子:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="@my_programmer">
<title>webkitAnimationEnd</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no"/>
<style type="text/css">
#div{
width:200px;
height:200px;
background:#f60;
margin:100px auto;
-webkit-transition: all ease 1s;
}
.change{
-webkit-animation: transform 1s 2 ease;
}
@-webkit-keyframes transform {
% { -webkit-transform: scale(1)}
% { -webkit-transform: scale(2)}
% { -webkit-transform: scale(0.5)}
% { -webkit-transform: scale(1)}
}
</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">
var tt = document.querySelector('#div');
tt.addEventListener("click", function(){
this.className = 'change';
}, false);
tt.addEventListener("webkitAnimationEnd", function(){ //動畫結(jié)束時事件
this.className = this.className.replace('change', ' ');
console.log(2);
}, false);
</script>
</body>
</html>
拓展:
1、-webkit-animation動畫其實有三個事件:
開始事件 webkitAnimationStart
結(jié)束事件 webkitAnimationEnd
重復(fù)運動事件 webkitAnimationIteration
你可以在上個例子中測試一下這兩個事件
tt.addEventListener("webkitAnimationStart", function(){ //動畫開始時事件
console.log(1);//動畫開始時,控制臺輸出1
}, false);
tt.addEventListener("webkitAnimationIteration", function(){ //動畫重復(fù)運動時的事件
console.log(3);//第一遍動作完成時,控制臺輸出3
}, false);
2、css3的過渡屬性transition,在動畫結(jié)束時,也存在結(jié)束的事件:webkitTransitionEnd;
注意:transition,也僅僅有這一個事件。
第一種方法:
用計時器,設(shè)定一個和動畫時長一樣的time,過time事件去執(zhí)行這個函數(shù)。
setTimeout(function(){ },time);
第二種方法:
當(dāng)-webkit-animation動畫結(jié)束時有一個webkitAnimationEnd事件,只要監(jiān)聽這個事件就可以了。
例子:
復(fù)制代碼
代碼如下:<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="@my_programmer">
<title>webkitAnimationEnd</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no"/>
<style type="text/css">
#div{
width:200px;
height:200px;
background:#f60;
margin:100px auto;
-webkit-transition: all ease 1s;
}
.change{
-webkit-animation: transform 1s 2 ease;
}
@-webkit-keyframes transform {
% { -webkit-transform: scale(1)}
% { -webkit-transform: scale(2)}
% { -webkit-transform: scale(0.5)}
% { -webkit-transform: scale(1)}
}
</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">
var tt = document.querySelector('#div');
tt.addEventListener("click", function(){
this.className = 'change';
}, false);
tt.addEventListener("webkitAnimationEnd", function(){ //動畫結(jié)束時事件
this.className = this.className.replace('change', ' ');
console.log(2);
}, false);
</script>
</body>
</html>
拓展:
1、-webkit-animation動畫其實有三個事件:
開始事件 webkitAnimationStart
結(jié)束事件 webkitAnimationEnd
重復(fù)運動事件 webkitAnimationIteration
你可以在上個例子中測試一下這兩個事件
復(fù)制代碼
代碼如下:tt.addEventListener("webkitAnimationStart", function(){ //動畫開始時事件
console.log(1);//動畫開始時,控制臺輸出1
}, false);
tt.addEventListener("webkitAnimationIteration", function(){ //動畫重復(fù)運動時的事件
console.log(3);//第一遍動作完成時,控制臺輸出3
}, false);
2、css3的過渡屬性transition,在動畫結(jié)束時,也存在結(jié)束的事件:webkitTransitionEnd;
注意:transition,也僅僅有這一個事件。
相關(guān)文章
CSS3+Animation實現(xiàn)鼠標(biāo)滑過按鈕背景動畫特效源碼
CSS3+Animation實現(xiàn)鼠標(biāo)滑過按鈕背景動畫特效源碼是一款當(dāng)鼠標(biāo)滑過按鈕時,使用CSS3 animation來動畫background-size和background-position屬性,來制作各種背景動畫效果。2016-04-19CSS3 Animation 制作按鈕鼠標(biāo)滑過動畫填充背景特效源碼(13種)
CSS3 Animation 制作按鈕鼠標(biāo)滑過動畫填充背景特效源碼(13種)是一款共有13種動畫填充背景效果,均由按鈕的偽元素和CSS3 animation來制作完成,效果非常棒,喜歡的朋友前來2016-04-12CSS3中利用animation屬性創(chuàng)建雪花飄落特效
在CSS3中我們可以使用animation屬性來創(chuàng)建復(fù)雜的動畫效果,本文就要借助它實現(xiàn)雪花飄落特效,功能代碼如下,希望對大家學(xué)習(xí)css3有所幫助2014-05-14- 這篇文章主要介紹了CSS3動畫animation如何實現(xiàn)云彩向左滾動的效果,需要的朋友可以參考下2014-05-09
css3 animation實現(xiàn)的loading動畫加載進(jìn)度條效果
一款純css3 animation動畫屬性頁面loading動畫加載進(jìn)度條效果2014-04-18純CSS3 animation屬性實現(xiàn)的GIF圖片進(jìn)度加載效果
一款純CSS3 animation屬性實現(xiàn)GIF圖片進(jìn)度加載效果2014-01-22基于CSS3特效之動畫:animation的應(yīng)用
本篇文章對CSS3中的animation的使用進(jìn)行了詳細(xì)的介紹,需要的朋友可以參考下2013-05-09- 關(guān)鍵貞的動畫效果如果一樣,可以將關(guān)鍵貞的百分比用逗號隔開,然后再寫效果2012-05-10
- CSS3 Animation 制作動畫點擊波效果代碼是一款使用CSS3 animation動畫來制作點擊波效果,可以在按鈕和圖片等元素上制作點擊波特效。需要的朋友前來下載源碼2016-05-04