JS给div的style对象设置transition:none;width:1000px; 然后在设置transition:all .4s; 为什么在网页中div的width是以过渡效果显示的? 而不是直接一下变为1000px?
和event loop有关吗?
是不是因为浏览器在解析的时候会先收集所有style属性,然后一起去设置?
和浏览器渲染有关吗?
JS给div的style对象设置transition:none;width:1000px; 然后在设置transition:all .4s; 为什么在网页中div的width是以过渡效果显示的? 而不是直接一下变为1000px?
和event loop有关吗?
是不是因为浏览器在解析的时候会先收集所有style属性,然后一起去设置?
和浏览器渲染有关吗?
13 回答12.7k 阅读
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答2.5k 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
5 回答2.5k 阅读
没错,和浏览器渲染有关,你这么写,就相当于 transition = 'none' 是无效的,直接被后面的覆盖了。
如果要达到你的目的,需要让浏览器强行重绘。