js動畫事件
阿新 • • 發佈:2021-02-08
技術標籤:javascriptjscss3javascript
js之動畫事件
首先,動畫事件主要包括以下三個animationstart,animationiteration和animationend事件,下面做簡單分別介紹。
animationstart | 該事件在css動畫開始播放時觸發 |
---|---|
animationiteration | 該事件在css動畫重新播放時觸發 |
animationend | 該事件在css動畫結束播放時觸發 |
我們知道animation主要有6個屬性,分別來設定動畫呈現出來哦的效果,這個在我的另一篇文章中有介紹,我這邊簡單展示一下。
animation:name duration timing-function delay iteration-count direction;
分別是:動畫名稱 動畫持續事件 動畫執行速度曲線 動畫開始時的執行時間 動畫播放次數 規定是否反向輪流播放。
下面一段程式碼講述的是採用監聽動畫開始,動畫再次播放和動畫結束做出相應的改變,這裡用到addEventListener監聽動畫開始、動畫持續播放、動畫結束播放。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>animation動畫篇</title>
<style type="text/css" >
#con
{
width: 100px;
height: 100px;
background: #FFA500;
position: relative;
}
@-moz-keyframes myanimation
{
from{left: 100px;top:0px;}
to{left: 200px;top: 100px;}
}
@-webkit-keyframes myanimation
{
from{left: 100px;top: 0px;}
to{left: 200px;top: 100px;}
}
</style>
</head>
<body>
<div id="con" onclick="myfunction()">
</div>
<script type="text/javascript">
var x = document.getElementById('con'); //設定全域性變數x
function myfunction()
{
x.style.WebkitAnimation="myanimation 2s linear 3"; // Chrome, Safari 和 Opera 瀏覽器相容問題
x.style.animation="myanimation 2s linear 3";
}
x.addEventListener("animationstart",myanimationStart);
x.addEventListener("animationiteration",myanimationiterration);
x.addEventListener("animationend",myanimationend);
x.addEventListener("webkitAnimationStart",myanimationStart); // Chrome, Safari 和 Opera 瀏覽器相容問題
x.addEventListener("webkitAnimationIteration",myanimationiterration); // Chrome, Safari 和 Opera 瀏覽器相容問題
x.addEventListener("webkitAnimationEnd",myanimationend); // Chrome, Safari 和 Opera 瀏覽器相容問題
function myanimationStart() //動畫開始執行時觸發,通過addEventListener事件監聽到執行函式myanimationStart
{
this.innerHTML="動畫正在執行";
x.style.background="pink";
}
function myanimationiterration() //動畫再次執行觸發,同樣也是通過事件監聽
{
this.innerHTML="動畫重新執行";
x.style.background="greenyellow";
}
function myanimationend() //動畫執行結束時觸發,同樣也是通過事件監聽事件
{ this.innerHTML="動畫執行結束";
x.style.background="blue";
x.style.width=200+"px";
x.style.height=200+"px";
window.alert("動畫執行結束");
}
</script>
</body>
</html>
效果展示: