@ld_10

Как отследить полную загрузку тега img?

Здравствуйте.
В сети полно примеров как отследить полную загрузку картинок созданных через new Image(), но так и не смог найти как отследить полную загрузку картинок если они находятся в теге .
Пример, есть 3 картинки
<img src="https://pp.userapi.com/c830409/v830409785/1be353/SjILkQiUBac.jpg" class="draggable">
<img src="https://pp.userapi.com/c830409/v830409785/1be345/oIX93cgm34k.jpg" class="draggable">
<img src="https://pp.userapi.com/c830409/v830409785/1be33e/73SFiK33foM.jpg" class="draggable">

Нужно через js задать им position: absolute, делаю так
let count = 0, img = document.querySelectorAll('.draggable');

for (let i = 0; i < img.length; i++) {
	img[i].onload = () => {
		if (++count == img.length) {
			for (let i = 0; i < img.length; i++) {
				img[i].style.position = 'absolute';
			}
		}
	}
}

но срабатывает не всегда, как побороть сей баг?
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Promise
  .all([...img].map(n => new Promise(r => n.complete ? r() : n.onload = r)))
  .then(() => img.forEach(n => n.style.position = 'absolute'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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