动画事件
1. animationend
在 CSS 动画完成后触发
更多关于 CSS 动画的内容,请查看菜鸟教程的 CSS3 动画 章节。
提示
- CSS 动画播放时,会发生以下三个事件:
-
- animationstart - CSS 动画开始后触发
-
- animationiteration - CSS 动画重复播放时触发
-
- animationend - CSS 动画完成后触发
- 支持冒泡
相关知识
CSS 教程: CSS3 动画
CSS 参考手册: CSS3 动画属性
HTML DOM 参考手册: Style 动画属性
浏览器支持
IE | firefox | safari | opera | |
---|---|---|---|---|
4.0 | 10.0 | 16.0 | 4.0 | 15.0 |
注意
Chrome, Safari 和 Opera 12.1版本 浏览器使用 webkitAnimationEnd 前缀。
firefox 5.0版本开始使用 mozAnimationEnd 前缀
object.addEventListener("webkitAnimationEnd", myScript); // Chrome, Safari 和 Opera
object.addEventListener("mozAnimationend", myScript); //firefox
object.addEventListener("animationend", myScript); // 标准语法
以下列出了所有的动画事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>zsh</title>
<style>
#myDIV {
margin: 25px;
width: 550px;
height: 100px;
background: orange;
position: relative;
font-size: 20px;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes mymove {
from {top: 0px;}
to {top: 200px;}
}
@keyframes mymove {
from {top: 0px;}
to {top: 200px;}
}
</style>
</head>
<body>
<p>该实例使用了 addEventListener() 方法为 DIV 元素添加"animationstart", "animationiteration" 和 "animationend" 事件。</p>
<div id="myDIV" onclick="myFunction()">点我开始动画</div>
<script>
var x = document.getElementById("myDIV")
// 使用 JavaScript 开始动画
function myFunction() {
x.style.WebkitAnimation = "mymove 4s 2"; // Chrome, Safari 和 Opera 代码
x.style.MozAnimation = "mymove 4s 2"
x.style.animation = "mymove 4s 2";
}
// Chrome, Safari 和 Opera
x.addEventListener("webkitAnimationStart", myStartFunction);
x.addEventListener("webkitAnimationIteration", myIterationFunction);
x.addEventListener("webkitAnimationEnd", myEndFunction);
//firefox
x.addEventListener("mozAnimationstart", myStartFunction);
x.addEventListener("mozAnimationiteration", myIterationFunction);
x.addEventListener("mozAnimationend", myEndFunction);
x.addEventListener("animationstart", myStartFunction);
x.addEventListener("animationiteration", myIterationFunction);
x.addEventListener("animationend", myEndFunction);
function myStartFunction() {
this.innerHTML = "animationstart 事件触发 - 动画已经开始";
this.style.backgroundColor = "pink";
}
function myIterationFunction() {
this.innerHTML = "animationiteration 事件触发 - 动画重新播放";
this.style.backgroundColor = "lightblue";
}
function myEndFunction() {
this.innerHTML = "animationend 事件触发 - 动画已经完成";
this.style.backgroundColor = "lightgray";
}
</script>
</body>
</html>
2. animationiteration
在 CSS 动画重新播放时触发
如果 CSS animation-iteration-count 属性设置为 “1”, 动画将只播放一次, animationiteration 事件不再触发。
更多关于 CSS 动画的内容,请查看菜鸟教程的 CSS3 动画 章节。
提示
- CSS 动画播放时,会发生以下三个事件:
-
- animationstart - CSS 动画开始后触发
-
- animationiteration - CSS 动画重复播放时触发
-
- animationend - CSS 动画完成后触发
- 支持冒泡
浏览器支持
IE | firefox | safari | opera | |
---|---|---|---|---|
4.0 | 10.0 | 16.0 | 4.0 | 15.0 |
注意
Chrome, Safari 和 Opera 12.1版本 浏览器使用 webkitAnimationEnd 前缀。
firefox 5.0版本开始使用 mozAnimationEnd 前缀
object.addEventListener("webkitAnimationIteration", myScript); // Chrome, Safari 和 Opera
object.addEventListener("mozAnimationIteration", myScript); //firefox
object.addEventListener("animationiteration", myScript); // 标准语法
3. animationstart
在 CSS 动画开始播放时触发
更多关于 CSS 动画的内容,请查看菜鸟教程的 CSS3 动画 章节。
提示
- CSS 动画播放时,会发生以下三个事件:
-
- animationstart - CSS 动画开始后触发
-
- animationiteration - CSS 动画重复播放时触发
-
- animationend - CSS 动画完成后触发
- 支持冒泡
浏览器支持
IE | firefox | safari | opera | |
---|---|---|---|---|
4.0 | 10.0 | 16.0 | 4.0 | 15.0 |
注意
Chrome, Safari 和 Opera 12.1版本 浏览器使用 webkitAnimationEnd 前缀。
firefox 5.0版本开始使用 mozAnimationEnd 前缀
object.addEventListener("webkitAnimationStart", myScript); // Chrome, Safari 和 Opera
object.addEventListener("mozAnimationStart", myScript); //firefox
object.addEventListener("animationstart", myScript); // 标准语法
过渡事件
1. transitionend
在 CSS 完成过渡后触发
更多关于 CSS 过渡,请查看我们的 CSS3 过渡。
提示
- 如果过渡在完成前移除,例如 CSS transition-property 属性被移除,过渡事件将不被触发。
- 支持冒泡
相关知识
- CSS 教程: CSS3 过渡
- CSS 参考手册: CSS3 过渡属性
- CSS 参考手册: CSS3 transition-property 属性
浏览器支持
IE | firefox | safari | opera | |
---|---|---|---|---|
26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
注意: google 4.0,opera 10.5,Safari 3.1 使用webkitTransitionEnd前缀。firefox 4.0 使用mozTransitionEnd前缀
object.addEventListener("webkitTransitionEnd", myScript); // Safari 3.1 到 6.0 代码
object.addEventListener("transitionend", myScript); // Standard syntax
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>zsh</title>
<style>
#myDIV {
width: 100px;
height: 100px;
background: red;
-webkit-transition: width 2s; /* For Safari 3.1 to 6.0 */
transition: width 2s;
}
#myDIV:hover {
width: 400px;
}
</style>
</head>
<body>
<p>鼠标移动到 div 元素上,查看过渡效果。</p>
<div id="myDIV"></div>
<p><b>注意:</b>该实例无法在 Internet Explorer 9 及更早 IE 版本上工作。</p>
<script>
// Safari 3.1 到 6.0 版本代码
document.getElementById("myDIV").addEventListener("webkitTransitionEnd", myFunction);
// 标准语法
document.getElementById("myDIV").addEventListener("transitionend", myFunction);
function myFunction() {
this.innerHTML = "过渡事件触发 - 过渡已完成";
this.style.backgroundColor = "pink";
}
</script>
</body>
</html>
文档内容出自 W3cSchool和菜鸟教程, 如需查看更详细的有关内容 请登录 http://www.w3school.com.cn/ 和 http://www.runoob.com/