css3動畫事件—webkitAnimationEnd


  用css3的animation完成一個動畫,當只有這個動畫完成時才執行令一個事件,比如讓動畫保持在終止的狀態或其他一些事件。我們該怎么辦呢。

  第一種方法:

    用計時器,設定一個和動畫時長一樣的time,過time事件去執行這個函數。

    setTimeout(function(){ },time);

  第二種方法:

      當-webkit-animation動畫結束時有一個webkitAnimationEnd事件,只要監聽這個事件就可以了。

  例子:

 
         

<!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 {
0% { -webkit-transform: scale(1)}
30% { -webkit-transform: scale(2)}
60% { -webkit-transform: scale(0.5)}
100% { -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(){ //動畫結束時事件
this.className = this.className.replace('change', ' ');
console.log(2);
}, false);

 
         

</script>
</body>
</html>

 

  拓展:

   1、 -webkit-animation動畫其實有三個事件:      

      開始事件 webkitAnimationStart
      結束事件 webkitAnimationEnd
      重復運動事件 webkitAnimationIteration

    你可以在上個例子中測試一下這兩個事件

 
         

tt.addEventListener("webkitAnimationStart", function(){ //動畫開始時事件
  console.log(1);  //動畫開始時,控制台輸出1

}, false);
tt.addEventListener("webkitAnimationIteration", function(){ //動畫重復運動時的事件
  console.log(3);  //第一遍動作完成時,控制台輸出3
}, false);

 
        

    2、  css3的過渡屬性transition,在動畫結束時,也存在結束的事件:webkitTransitionEnd;

      注意:transition,也僅僅有這一個事件。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM