如何停止CSS3过渡
我想停止正在进行的转换。
我发现一些散布在互联网上的参考文献[1] [2],但我似乎无法把它拼凑在一起。
这是第一个建议的小提琴(用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)存储元素中对象的所有属性;并循环遍历它们)。
一旦明确设置了属性,就可以运行0s动画来覆盖上一个动画并有效地停止该元素。
有一个更简单的解决方案。 如果你想停止转换(而不是暂停转换)。 只需将css设置为当前计算的样式即可。 例如,在自定义滚动解决方案中,top是过渡属性。
element.style.top=getComputedStyle(element).top;
就是这样。