javascript - 如何确定 CSS 过渡是否即将发生?

标签 javascript css

这是我的问题。假设我将 div 高度从 10px 更改为 50px,然后想对其大小进行一些计算。

通常我只是更改值并获取,例如它的真实高度(这可能会受到其/任何其父填充、最大高度、地段的影响。)。

但是,当此更改带有过渡动画时,事情就变得复杂了。我可以等待 transitionEnd 事件触发,然后检查元素大小,但我如何才能确定转换即将发生?所以我知道我必须等待事件而不是立即检查高度?

最佳答案

测试过渡属性的计算样式。如果它与您正在更改的属性匹配,请等待 transitionEnd 事件。

if(window.getComputedStyle(element).transitionProperty.match(/\bheight\b/))
{
  //handle transitionEnd event
}
else
{
  //do calculations now
}

当然你需要检查浏览器的特定前缀。

编辑:我还应该说一个元素可能设置了多个过渡属性。确保您进行了相应的测试(代码已更新以反射(reflect)这一点)。

关于javascript - 如何确定 CSS 过渡是否即将发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14990475/

相关文章:

javascript - Chrome 扩展程序 : Eventlisten on current tab

javascript - 等待 jPlayer 完成加载文件后再继续循环

html - 如何为输入中显示的文本创建偏移量?

javascript - 让一个 div 定义另一个的高度

css - IE11 无法正确显示 CSS 内容

jquery - JavaScript 返回不起作用?返回未定义

javascript - 确切的关闭是什么?

javascript - Ember.js 中有关 StateManager 的最佳实践

css - Div 超出视口(viewport)(如顶部的 StackOverflow 栏)

javascript - CSS悬停效果过渡会改变颜色吗?