CSS переход не начнется на экране размытия - PullRequest
0 голосов
/ 27 октября 2019

Я использую реагировать JS. Я пытаюсь запустить простой код:

setTimeout(() => {
       setTimeout(() => {
         const element = document.getElementById(‘circle’)
         element.style.backgroundColor = ‘red’
       }, 3000)
     }, 3000)

CSS "круга" просто:

width: 100px;
height: 100px;
border-radius: 50%;
background-color: blue;
transition: background-color 2s;

Я запускаю код и вкладку немедленных изменений или свернуть экран, ожидая большезатем 6 секунд и вернитесь на страницу, а затем начните переход. По какой-то причине переход не запускается, если экран не в фокусе. Любая помощь, ребята ???

Ответы [ 3 ]

1 голос
/ 27 октября 2019

Поведение, которое вы описываете в зависимости от браузера , потому что неактивные вкладки имеют низкоприоритетное выполнение .

Во время выполнения "JS Animation" вы можете захотеть использовать requestAnimation.

В лучшем подходе можно использовать «CSS-анимацию» с transition-delay.

0 голосов
/ 28 октября 2019

На самом деле это не очень помогает мне. Решение, которое я сделал, состоит в том, чтобы прослушивать «фокус» и «размытие» и останавливать любой процесс анимации и таймеры на размытие и продолжать с последней точки в фокусе.

0 голосов
/ 27 октября 2019

Используйте этот код, почему в коде используется апострофная метка.

    <script>
        setTimeout(() => {
               setTimeout(() => {
                 const element = document.getElementById('circle')
                 element.style.backgroundColor = 'red'
               }, 3000)
             }, 3000)
        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...