Event事件对象之动画事件和过渡事件

25 篇文章 0 订阅
10 篇文章 0 订阅

动画事件

1. animationend

在 CSS 动画完成后触发

更多关于 CSS 动画的内容,请查看菜鸟教程的 CSS3 动画 章节。

提示
相关知识

CSS 教程: CSS3 动画
CSS 参考手册: CSS3 动画属性
HTML DOM 参考手册: Style 动画属性

浏览器支持
googleIEfirefoxsafariopera
4.010.016.04.015.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 动画 章节。

提示
浏览器支持
googleIEfirefoxsafariopera
4.010.016.04.015.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 动画 章节。

提示
浏览器支持
googleIEfirefoxsafariopera
4.010.016.04.015.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 属性被移除,过渡事件将不被触发。
  • 支持冒泡

相关知识

浏览器支持
googleIEfirefoxsafariopera
26.010.016.06.112.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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值