我想停止正在进行中的过渡。
我在互联网上找到了几个参考资料[1][2],但似乎无法将它们拼合在一起。
这是第一个建议的fiddle(带有jQuery和CSS Transit的背景):http://jsfiddle.net/thomseddon/gLjuH/
谢谢
[1]https://twitter.com/evilhackerdude/status/20466821462
[2] github.com/madrobby/zepto/issues/508
我想停止正在进行中的过渡。
我在互联网上找到了几个参考资料[1][2],但似乎无法将它们拼合在一起。
这是第一个建议的fiddle(带有jQuery和CSS Transit的背景):http://jsfiddle.net/thomseddon/gLjuH/
谢谢
[1]https://twitter.com/evilhackerdude/status/20466821462
[2] github.com/madrobby/zepto/issues/508
所以我找到了解决方法:http://jsfiddle.net/thomseddon/gLjuH/3/
诀窍是将你要动画的每个CSS属性设置为它的当前值(可能是中间过渡状态),例如:$(this).css('prop', $(this).css('prop'));
(可能希望在元素中存储所有属性,并通过 $(this).data(props); 循环遍历)。
一旦你明确设置了属性,就可以运行一个0秒的动画来覆盖前一个动画,从而有效地停止元素。
有一个更简单的解决方案。如果你只想停止过渡(而不是暂停它),只需将css设置为当前计算样式即可。例如,在自定义滚动解决方案中,其中top是过渡属性。
element.style.top=getComputedStyle(element).top;
就是这样。