mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-08 06:09:58 +00:00
Previously we would only update these if: a) We had a cascaded value for `transition-property` b) The source of that cascaded value had changed since we last registered transitions This meant that there were a lot of changes we didn't apply: - Changes exclusively to properties other than `transition-property` (e.g. `transition-duration`, `transition-behavior`, etc) - Removing the `transition-property` property - Updating the `transition-property` property in a way that didn't change it's source (e.g. setting it within inline-style) Unfortunately this does mean that we now register transitions for all properties on most elements since "all" is the initial value for "transition-property" which isn't great for performance, but that can be looked at in later commits.
15 lines
490 B
HTML
15 lines
490 B
HTML
<!DOCTYPE html>
|
|
<div id="foo" style="transition: none 1s; top: 0px"></div>
|
|
<script src="../include.js"></script>
|
|
<script>
|
|
test(() => {
|
|
// Transitions aren't registered until the second computation as a performance optimization so
|
|
// force a recomputation
|
|
foo.style.left = "0px";
|
|
getComputedStyle(foo).left;
|
|
|
|
foo.style.transitionProperty = "top";
|
|
foo.style.top = "10px";
|
|
println(document.getAnimations().length);
|
|
});
|
|
</script>
|