Задать вопрос
BorodinKO
@BorodinKO

Как принудительно отрендерить css?

Насколько я понимаю все изменения свойств в css в браузере происходит асинхронно, в каком нибудь не ведомом для меня цикле.

Поэтому код:
document.body.style.backgroundColor = 'red'
//???
var ms = 1000 + new Date().getTime();
while (new Date() < ms){}

...изменит фон только через секунду.

Есть ли способ отрендерить css принудительно?

Поясню:
В моем проекте есть код который нагружает браузер секунды на 2, из за чего он "залипает".
Было бы здорово изменить курсор мыши на "ожидание" на эти 2 секунды.
Но если изменить курсор сразу до залипания, то он применится после залипания.
Мне не хочется выполнять этот "тяжелый" код асинхронно.

И я надеюсь, что есть какая то "волшебная" строчка, которая мне поможет с этим.
Заранее прошу прощение за такой глупый вопрос.
  • Вопрос задан
  • 2481 просмотр
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
Есть некоторые стили, применение которых требует полностью перерисовать экран
вот тут обсуждают некоторые хаки stackoverflow.com/questions/3485365/how-can-i-forc...

Но не факт, что это поможет.
А что будет, если асинхронно выполнять изменение курсора (цвета)?
Ответ написан
Комментировать
arizona
@arizona
а что я, собственно, здесь делаю?...
Читала немного у Чикуёнка про reflow/recalculation
...существование определённых свойств у элемента, которые принудительно вызывают пересчёт стилей

Возможно, это пригодится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы