Как избавиться от мерцания элемента при обновлении стилей?
Есть div, для которого с помощью js изменяется bacground: url()
но при изменении элемент на некоторое время становится белым, как от этого избавиться? Может есть способы ещё кроме как подложки под этот элемент с таким же фоном?
Drakondr, тогда показывайте код. CSS тут не причём. Возможно js DOM перерисовывает.
UPD: Кажется понял в чём проблема.
С помощью JS просто навешивайте класс. А в CSS пропишите бэкграунды для этих классов.
Сделайте изначально множественный бэкграунд - background-image: url(1.png), url(2.png);
Тогда оба изображения будут уже загружены. На js меняйте на нужное - background-image: url(2.png), белого фона не будет. https://codepen.io/aliencash/pen/rNmMoJv
Сергей delphinpro, и зачем это использовать для фоновых изображений? Только первоначальную загрузку сайта тормозить. В моей схеме фоновые изображения загрузятся с низким приоритетом. после всего важного, как и должно быть.
Сергей delphinpro, ну как почему? потому что preload'ом вы повышаете приоритет загрузки изображения. И пока оно не загрузится не будет рендера значимой части страницы.