1. 程式人生 > 其它 >js動畫事件

js動畫事件

技術標籤: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>

效果展示:
在這裡插入圖片描述