当转换结束于div时转发的webkitTransitionEnd事件AND转换在所有CHILD div上结束?

mat*_*ler 18 javascript animation webkit css3

所有,

我的情况看起来大致如下:

我的HTML页面包含div(我称之为"parentDiv"),我正在进行转换.当转换结束时,它应该调用"onTransitionEndParent"

parentDiv包含一个div(我称之为"childDiv"),我正在执行不同的转换.当转换结束时,它应该调用"onTransitionEndChild".

所以,我的代码大致如下:

parentDiv.addEventListener("webkitTransitionEnd", onTransitionEndParent, false);
childDiv.addEventListener("webkitTransitionEnd", onTransitionEndChild, false);
Run Code Online (Sandbox Code Playgroud)

我发现的问题......

当parentDiv的转换结束(正确)时,将调用onTransitionEndParent.然而,它的调用时childDiv过渡端(不出我所料...)

换一种说法...

  • 当childDiv的转换结束时,将调用onTransitionEndChild
  • 当parentDiv的转换结束时,调用onTransitionEndParent ,当childDiv的转换结束时,调用AGAIN

这是正确的行为,还是我做错了什么?

有没有办法确保onDnsitionEndParent仅在parentDiv的转换结束时被调用,而不是当它的任何子div的转换结束时?

提前谢谢了.

c-s*_*ile 34

transitionEnd 所谓的冒泡事件,从孩子到其父母被派遣(冒泡).

你的选择:

  1. 分析event.target事件对象的属性 - 它应该包含已结束转换的元素.
  2. 或者在每个子元素上安装transitionEnd事件处理程序并调用 event.stopPropagation()以防止其冒泡.

  • 我不知道`transitionEnd`冒泡了.只是纯粹的巧合,我一年没有遇到这个问题.我今天第一次体验过它,我很高兴能找到你的答案.检查源元素以确定是否对其采取行动是我的选择. (3认同)