Загрузка изображений и анимирование
Здравствуйте.
У меня возникла проблема, при загрузке различных изображений сильно зависает анимация (именно в момент загрузки изображения) основанная на "requestAnimationFrame". Пробовал ставить lazyload но ничего не получилось. К примеру есть такой сайт https://themarcus.com , на нём задействована аналогичная анимация на "requestAnimationFrame" при том, загружаются изображения через lazyload но никаких зависаний в анимации нет. Подскажите как добиться такого эффекта? |
Цитата:
|
Ну и еще зависит от того, что именно вы делаете в requestAnimationFrame.
Туда тоже можно напихать тяжелых операций, занимающих кучу времени, чего делать не стоит. |
Цитата:
У меня же просто анимация перемещения влево, так же через transform, но во время загрузки картинок присутствуют микро-лаги (картинка грузится -> лаг -> картинка загрузилась -> анимация отлагала) как будто скрипт ждёт пока загрузится картинка и только после этого продолжает свою работу. Да, картинки маленькие аналогичные по размеру картинкам из примера. Что делаю с "requestAnimationFrame"? Всё просто как обычная анимация: function exemple(*) { requestAnimationFrame(function anim(e) { /* code */ requestAnimationFrame(anim) }) } Так вот, господа, у кого-то есть предположения или знание того почему происходят подобные микро-лаги или как устроена загрузка изображений (без микро-лагов в исполнении скрипта) на том сайте что был примером? |
Цитата:
Если вы делаете только elem1.style.transform = ... elem2.style.transform = .... .... То по идее никаких задержек быть не должно Но если там еще всякие getComputedStyle, getBoundingClientRect, да даже всякие обращения к offsetWidth, offsetLeft и прочие запросы размеров элементов, изменения в DOM. то это может вызвать торможения. Это тяжелые операции. Загрузка через нативный <img loading="lazy" >? Ну и попытаться понять, что вызывает задержку можно с помощью средств разработчика браузера. |
Цитата:
Цитата:
Просмотрел работу сайта через performance, там показало что чрезмерное время выполнения тасков вызывает "Composite Layers", а на js нет никаких нареканий. Не знаете с чем может быть связана проблема длительного выполнения "Composite Layers" ? |
Часовой пояс GMT +3, время: 04:58. |