美文网首页
聊聊CSS动画的监听

聊聊CSS动画的监听

作者: daybreakcold | 来源:发表于2017-07-04 22:54 被阅读0次

还记得许多年前,我们为一个元素添加有一个动画class之后,你还在用settimeout来延迟下一个动作,这么做过时啦。
哪怎么做呢。
不是添加了一个类么,哪动画结束以后来执行这个动作呗。
哪么动画有两种,还是要区别对待的。
1.animation
2.transition

animation动画监听

-webkit-animation动画其实有三个事件:
开始事件 webkitAnimationStart
结束事件 webkitAnimationEnd
重复运动事件 webkitAnimationIteration

document.addEventListener("webkitAnimationStart", function(){ //动画开始时事件
        console.log("start");
    }, false);
    document.addEventListener("webkitAnimationEnd", function(){ //动画结束时事件
        console.log("end");
    }, false);
    document.addEventListener("webkitAnimationIteration", function(){ //动画重复运动时的事件
        console.log("next"); //第一遍动画完成输出end
    }, false);
transition动画监听
document.addEventListener("webkitTransitionEnd", function(){
    console.log("end");
}, false);

嗯 对 就是这么简单 后面的实际用例我会附上
待更新中。。。
这篇文章写出来以后,朋友反馈过来有兼容性问题。
iOS9一下和安卓4.4一下是不支持的。
因为现在大多数项目技术栈是vue,这里我就推荐使用vue的过渡钩子函数beforeLeave来解决这个问题,关于vue过渡常见的用法和解惑我会单独开一篇文章去写这个东西。
其他比较好的解决方案还是使用setTimeout去解决这个问题。

补充

https://developer.mozilla.org/en-US/docs/Web/Events/transitionend

el.addEventListener("transitionend"
  , e => 
    {
      const pseudoElement = e.pseudoElement // 触发动画的伪类
          , propertyName = e.propertyName   // 发生动画的CSS属性
          , elapsedTime = e.elapsedTime     // 动画的持续时间
      // ..................
    })

注意:每个启用TransitionCSS属性的分别对应独立的transitionend事件

/* 触发3个transitionend事件 */
transition: width 1s ease .6s,
            color .5s linear,
            background 2s ease-in-out;

相关文章

  • 聊聊CSS动画的监听

    还记得许多年前,我们为一个元素添加有一个动画class之后,你还在用settimeout来延迟下一个动作,这么做过...

  • Vue 无缝轮播实现

    实现原理: 1.采用css3 实现 滚动效果(过渡动画) 2.采用 dom 事件监听 监听 过度动画 3.无缝原理...

  • css3动画监听

    为一个元素添加一个动画class之后你还在用settimeout来延迟下一个动作了,你out啦下面这些绝对是装逼的...

  • 判断一个元素的两个动画都结束

    判断css3动画结束,有个事件:animationend,可以监听此事件,做出自己的业务逻辑。 比如页面一加载,动...

  • Android动画之视图动画的缺点和属性动画的引入

    1视图动画添加监听 translate 动画 首先给控件添加点击事件: Animation可以添加对动画的监听,可...

  • Css动画 小球横移

    学习css 动画,建立小球左右横移的动画原料:html5 Css3html CSS css 动画属性介绍 其中an...

  • CSS-3D知识

    1.CSS动画 1.1 CSS动画属性-animation animation:为CSS动画属性,使用该属性可以替...

  • CSS动画(transform animation)

    前言 相信很多人对于CSS出来的动画都很惊讶,对于我来说也是神奇的很,今天我就来聊聊实现动画的一些方法,希望对大家...

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • 代码:JavaScript 监听 css3动画

    浏览器的CSS前缀。transitionend事件和animationend事件标准的浏览器事件,但在WebKit...

网友评论

      本文标题:聊聊CSS动画的监听

      本文链接:https://www.haomeiwen.com/subject/orcfhxtx.html