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

来源:互联网 发布:linux 卸载 工具 编辑:程序博客网 时间:2024/06/05 00:23

动画事件

1. animationend

在 CSS 动画完成后触发

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

提示

  • CSS 动画播放时,会发生以下三个事件:
    • animationstart - CSS 动画开始后触发
    • animationiteration - CSS 动画重复播放时触发
    • animationend - CSS 动画完成后触发
  • 支持冒泡

相关知识

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

浏览器支持

google 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 和 Operaobject.addEventListener("mozAnimationend", myScript);  //firefoxobject.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 和 Operax.addEventListener("webkitAnimationStart", myStartFunction);x.addEventListener("webkitAnimationIteration", myIterationFunction);x.addEventListener("webkitAnimationEnd", myEndFunction);//firefoxx.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 动画完成后触发
  • 支持冒泡

浏览器支持

google 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 和 Operaobject.addEventListener("mozAnimationIteration", myScript);  //firefoxobject.addEventListener("animationiteration", myScript); // 标准语法  

3. animationstart

在 CSS 动画开始播放时触发

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

提示

  • CSS 动画播放时,会发生以下三个事件:
    • animationstart - CSS 动画开始后触发
    • animationiteration - CSS 动画重复播放时触发
    • animationend - CSS 动画完成后触发
  • 支持冒泡

浏览器支持

google 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 和 Operaobject.addEventListener("mozAnimationStart", myScript);  //firefoxobject.addEventListener("animationstart", myScript); // 标准语法  

过渡事件

1. transitionend

在 CSS 完成过渡后触发

更多关于 CSS 过渡,请查看我们的 CSS3 过渡。

提示

  • 如果过渡在完成前移除,例如 CSS transition-property 属性被移除,过渡事件将不被触发。
  • 支持冒泡

相关知识

  • CSS 教程: CSS3 过渡
  • CSS 参考手册: CSS3 过渡属性
  • CSS 参考手册: CSS3 transition-property 属性

浏览器支持

google 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/