聊聊CSS动画的监听

html-css022

聊聊CSS动画的监听,第1张

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

哪怎么做呢。

不是添加了一个类么,哪动画结束以后来执行这个动作呗。

哪么动画有两种,还是要区别对待的。

1.animation

2.transition

-webkit-animation动画其实有三个事件:

开始事件 webkitAnimationStart

结束事件 webkitAnimationEnd

重复运动事件 webkitAnimationIteration

嗯 对 就是这么简单 后面的实际用例我会附上

待更新中。。。

这篇文章写出来以后,朋友反馈过来有兼容性问题。

iOS9一下和安卓4.4一下是不支持的。

因为现在大多数项目技术栈是vue,这里我就推荐使用vue的过渡钩子函数beforeLeave来解决这个问题,关于vue过渡常见的用法和解惑我会单独开一篇文章去写这个东西。

其他比较好的解决方案还是使用setTimeout去解决这个问题。

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

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

css监听元素高度如下。

1、页面渲染完成后(onReady函数里)去获取元素1在页面上距离顶部的高度fixedTop。

2、用监听页面滚动函数onPageScroll得到当前页面滚动高度,高度是页面在垂直防线已滚动的距离(单位px)。

为什么要监听,干嘛不在display变化的时候执行某个方法?

监听也行,假设这个div的id是test,先获取$("#test").is("hidden")返回值,记录下来,然后写一个函数,不停地判断$("#test").is("hidden")是不是跟记录下来的那个不一样,是的话就执行某个操作,然后更新记录