当前位置: 首页 > 面试题库 >

CSS3过渡完成时回调

房冥夜
2023-03-14
问题内容

我想淡出一个元素(将其不透明度转换为0),然后在完成后从DOM中删除该元素。

在jQuery中,这很简单,因为您可以指定动画完成后要执行的“删除”操作。但是,如果我希望使用CSS3过渡进行动画处理,是否可以知道过渡/动画何时完成?


问题答案:

对于过渡,您可以使用以下内容通过jQuery检测过渡的结束:

$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

对于动画,它非常相似:

$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });

请注意,您可以将所有浏览器前缀的事件字符串同时传递到bind()方法中,以在所有支持该事件的浏览器上支持事件触发。

更新:

根据Duck的评论:您使用jQuery的.one()方法来确保处理程序仅触发一次。例如:

$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });

更新2:

jQuery bind()方法已被弃用,从开始,on()最好使用method方法jQuery 1.7bind()

您还可以off()在回调函数上使用method,以确保仅将其触发一次。这是一个等效于using one()方法的示例:

$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
 function(e){
    // do something here
    $(this).off(e);
 });

参考文献:

  • .off()

  • .one()



 类似资料:
  • .animated_div { width:60px; height:40px; background:#92B901; color:#ffffff; position:absolute; font-weight:bold; font-size:15px; padding:10px; float:left; margin:5px; -webkit-transition:-webkit-transf

  • 问题内容: 元素是否触发了任何事件来检查css3转换是否已开始或结束? 问题答案: W3C CSS过渡草案 CSS Transition的完成将生成相应的DOM事件。将为每个经历过渡的属性触发一个事件。这使内容开发人员可以执行与转换完成同步的操作。 要确定转换何时完成,请为在转换结束时发送的DOM事件设置一个JavaScript事件监听器函数。该事件是WebKitTransitionEvent的实

  • 问题内容: 在css3动画的情况下,有什么方法可以实现回调函数?如果使用Javascript动画,则可能会在CSS3中找到实现它的方法,但找不到任何方法。 我可以看到的一种方法是在动画持续时间之后执行回调,但是并不能确保始终在动画结束后立即调用它。这将取决于浏览器UI队列。我想要一个更强大的方法。有什么线索吗? 问题答案: 就在这里。回调是一个事件,因此您必须添加事件侦听器才能捕获它。这是jQue

  • 问题内容: 我对css3 transition属性的渲染速度有疑问。 假设我有许多要素: 使用一个声明将所有这些元素的所有转换作为目标更有效。但是我的问题是:针对每个元素的特定过渡属性,在动画渲染的平滑度和快速度方面是否“更快”?例如: 我这样做的逻辑是,即使一个元素只有一个属性,css的“引擎”是否必须搜索“所有”过渡属性,也可能会减慢速度。 有谁知道是这样吗?谢谢! 问题答案: 是的,使用可能

  • 问题内容: 是否可以在不使用Javascript的情况下在页面加载时使用CSS3过渡动画? 问题答案: 您 可以 在页面加载时运行 CSS 动画,而无需使用任何JavaScript;您只需要使用 CSS3关键帧即可 。 让我们看一个例子… 这是仅使用 CSS3 的导航菜单滑入位置的演示: 分解… 这里的重要部分是关键帧动画,我们称之为… …这基本上是说:“开始时,标题将离开屏幕的左侧边缘的整个宽度

  • 定义 基于animejs封装的React组件。 图片展示 代码演示 import Anime from 'pile/dist/components/anime' const {CssTransform} = Anime let moveAlone = { targets: '.anime-move-demo-alone', left: '240px', backgroundColo