css动画回调 | Brizer’s Blog_html/css_WEB-ITnose

前言

传递的javascript式动画,可以很容易地通过回调函数来实现动画完成后做什么,而css3动画则不好通过javascript来回调。如何解决这个问题呢?

css动画

css动画我 以前在文章中提到过。这里写几个基本用法,第一种是简单的变换,使用transform即可:

.mydiv {    width:100px;    height:100px;    background:red;    -webkit-transition: all 2s;}.newClass {    -webkit-transform: translateY(100px)}

登录后复制

第二种是复杂一点,需要自己定义帧的状态:

@-webkit-keyframes mymove {    from {top:0px;}    to {top:200px;}}.mydiv {    width:100px;    height:100px;    background:red;    position:relative;    -webkit-animation:mymove 2s forwards; /* Safari and Chrome */}

登录后复制

立即学习“前端免费学习笔记(深入)”;

如何回调css动画

回到一开始提出的问题,我们如何回调。

一种最基本的想法就是我们知道了动画的时间,那么可以通过延时来模拟回调:

//css中代码可以看到动画持续2svar delay = 2000;setTimeout(function(){    dosomething()}, delay);

登录后复制

但是只要深入理解一点就知道setTimeout并不可靠,而且这么写可拓展性也太差了。

那么解决办法就是通过新的事件transitionEnd和animationend:

document.getElementById('my').addEventListener('transitionEnd', function(){    alert('Transform animation has done!');});document.getElementById('my').addEventListener('animationend', function(){    alert('Animation has done!....');});

登录后复制

这样就简单了。当然 还有animationstart,animationiteration等事件,这里就不一一介绍了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3117880.html

(0)
上一篇 2025年3月29日 13:52:35
下一篇 2025年3月29日 13:52:38

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论