我希望立即将某些CSS属性设置为某个值,然后从该值开始过渡到不同的值。我需要多次调用此功能。第一次运行或在控制台逐步执行时,它按预期工作,但在单个JavaScript函数中执行时,除非我使用setTimeout强制延迟,否则它不起作用。
在控制台逐行运行可以正常工作,但一次性调用不起作用:
这里是jsfiddle演示。
所以问题是 - 我如何更新css transition,以确保它会工作,或者当我更新css transition时,如何知道它何时开始影响其他我想要动画化的属性?
更新:从我的测试中,似乎设置transition属性在某种程度上是异步的,但我找不到任何为其更改设置回调的方法。
在控制台逐行运行可以正常工作,但一次性调用不起作用:
el.style.transition = ''; // no transition from now
el.style.left = '50px'; // set instantly to 50
el.style.transition = '1s'; // 1s transition from now
el.style.left = '250px'; // animate from 50 to 250
这里是jsfiddle演示。
所以问题是 - 我如何更新css transition,以确保它会工作,或者当我更新css transition时,如何知道它何时开始影响其他我想要动画化的属性?
更新:从我的测试中,似乎设置transition属性在某种程度上是异步的,但我找不到任何为其更改设置回调的方法。