SagePtr
@SagePtr
Еда - это святое

Есть ли более простой способ назначить стиль незагруженным изображениям?

Необходимо назначить для ещё не загруженных изображений отдельный стиль.
В данный момент при помощи JS назначаю отдельный класс, который удаляю при загрузке.
document.querySelectorAll("img").forEach(img => {
  if (!img.complete) {
    img.classList.add("incomplete");
    img.addEventListener("load", () => img.classList.remove("incomplete"));
  }
}

Но этот способ создаёт для каждого изображения отдельный обработчик, и требует для вновь созданных изображений отдельно проделать то же самое.
Есть ли более простой способ сделать это?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега CSS
Руководитель frontend направления, предприниматель
Тебе стоит копнуть в обсерверы типа такого и такого. Либо пойти по пути наименьшего сопротивления и заюзать bind в либе jQuery, который умеет ловить события на элементах, которые досоздаются после загрузки DOM. Но это неточно, я несколько лет, как не имел дело с jQuery.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@loonny
Да, например добавлять класс для не подгруженных изображений изначально.

<img class="incomplete" src="..." />

document.querySelectorAll("img").forEach(img => {
    img.addEventListener("load", () => img.classList.remove("incomplete"));
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы