Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по вёрстке » Как скрыть с сайта битые фото?

Как скрыть с сайта битые фото?


     15.11.2022    Все вопросы » Общие вопросы по вёрстке    592

вопрос
Есть куча новостей в которых попадаются битые фото, в том числе лежащие на других ресурсах.
Искать и чистить это все - тяжкая головная боль.
Для вордпресса есть чудо плагин, называется Remove Broken Images (есть в репозитории, бесплатно). Находит и скрывает со страницы битые фото, как свои, так и чужие, тестировал - четко работает.

Может кто помочь его адаптировать под DLE?
Навскидку там ничего сложного, чистый JS. Логика подсказывает что просто поправить нужные поля и заработает. Но увы, знаний своих не хватает.

У меня на сайте картинки лежат в диве:
<div class="kartinka"><img /></div>
<div class="kartinka"><img /></div>
<div class="kartinka"><img /></div>

Соответственно, если просто скрыть например 2 картинку - то блок с его визуалом останется. Хотелось бы чтобы этот скрипт скрывал также и конкретно этот блок.

Если кто сможет помочь - переведу на пиво)

Ответа пока нет


5 комментариев

arts-amateur
Юзер

arts-amateur - 15 ноября 2022 03:30 -

Сорян, забыл код погрузить в код
<div class="kartinka"><img data-src="/uploads/posts/....1.jpg"></div>
<div class="kartinka"><img data-src="/uploads/posts/....2.jpg"></div>
<div class="kartinka"><img data-src="/uploads/posts/....2.jpg"></div>

arts-amateur
Юзер

arts-amateur - 15 ноября 2022 05:07 -

В общем поковырялся, в движке есть файл lazyload.js
В событие onerror можно добавить свой класс, например со свойством display: none; и проблема с битой картинкой уходит. Думаю как теперь скрыть class="kartinka", если внутри есть другой класс, название которого известно

lutskboy
Эксперт

lutskboy - 15 ноября 2022 14:52 -

<div class="kartinka"><img onerror="this.closest('div').style.display='none';" data-src="..."></div>

arts-amateur
Юзер

arts-amateur - 15 ноября 2022 16:33 -

lutskboy, да не, я же выше написал, что сделал более правильное решение - подключение класса, который подгружается только при отсутствии картинки
Тут проблема скрыть div class="kartinka" при наличии этого класса, так как там осталось визуальное оформление и другие классы в этом массиве

lutskboy
Эксперт

lutskboy - 15 ноября 2022 16:42 -

<div class="kartinka"><img onerror="myFunc(this)" data-src="..."></div>

в myFunc пилите что угодно. хоть класс добавить. хоть скрыть. img либо div.kartinka

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх