Ответ 1
Итак, путающий бит здесь заключался в том, что мигание Paint инструментов Dev только мигает частью слоя, который становится недействительным из предыдущего кадра (поэтому, если один absolute
позиционированный квадрат начинает уменьшаться, недействительная область между кадрами является площадь с размерами и координатами, которые квадрат имел в предыдущем кадре)
Однако внутренне весь слой перерисовывается, независимо от того, насколько велика или мала недействительные части между кадрами.
Так, например, мигающий курсор будет выглядеть небольшим на Paint Flashing, но на самом деле весь слой нужно перекрасить.
Действительно, если мы откроем панель "Производительность" и включим опцию "Расширенное рисование инструмента", мы увидим, что между квадратными переходами весь слой нарисован в обоих сценариях, описанных в вопросе.
источники
https://twitter.com/paul_irish/status/971196975013027840
https://twitter.com/paul_irish/status/971196996924030977
https://twitter.com/paul_irish/status/971197842713800704
Некоторые наблюдения
Если бы мы минимизировали шаги Layout and Painting, чтобы сделать как можно меньше операций, мы должны отделить красный квадрат и желтую кнопку от их собственных слоев рендеринга.
Этот способ взаимодействия с кнопкой и изменения размера квадрата влияет только на их соответствующие слои и не приведет к перерисовке фонового слоя (который включает фон и синий квадрат).