有没有办法暂停中途的CSS过渡?

And*_*sky 11 javascript css css3

实际上这个主题很有说服力.但澄清一下,我很好奇几件事:

  1. 有没有办法 - 不是禁用 - 而是暂停属性转换?(然后 - 或许恢复它).

  2. 有没有办法在转换过程中读取属性更改(通过JavaScript)?例如,$(el).height()在悬停事件发生后0.5秒后返回50,如果el的样式是:el { height: 100px; transition: height 1s; }el:hover { height: 0px; }(它是草图,请原谅我的语法).

Abr*_*m P 0

1)您可以使用animation-play-stateCSS属性,并在之间切换

animation-play-state:runninganimation-play-state:paused https://developer.mozilla.org/en-US/docs/Web/CSS/animation-play-state

2)简短的回答是肯定的。无论您在转换过程中读取哪个属性(比如说height),都将返回查询时的当前值。

  • 他问的是过渡,而不是动画。 (20认同)
  • Animation-play-state 属性似乎并不控制运行的过渡,仅控制运行的动画。 (11认同)
  • 我真的不明白为什么这是这个问题的公认答案。Animation-play-state 确实控制正在运行的动画,但它不影响正在运行的过渡。所以基本上这个答案并不是你在这个问题上寻找的答案。 (9认同)