bimka
@bimka
Осваиваю Питон

Как выполнить блок кода при изменении видимости блока?

При нажатии пользователем адреса на карте, блок кода adress_box становится видимым.
<div id="adress_box" style="visibility: hidden">Ищем доставку по адресу <span id="address_confirm"></span></div>

Как сделать чтобы код, расположенный ниже, выполнялся при изменении видимости на visible?
alert('div is display!!!');

пока добился только того, чтобы при загрузке станицы выполнялся подобный код:
<div id="adress_box" style="visibility: hidden">Ищем доставку по адресу <span id="address_confirm"></span></div>

<script>
let element = document.getElementById('address_confirm');
let cssObj = window.getComputedStyle(element);
if (cssObj.getPropertyValue("visibility") == 'visible') {
    alert('div is NOT display!!!');
}
</script>
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
bimka
@bimka Автор вопроса
Осваиваю Питон
При нажатии на карту изменяется не только видимость блока, но и его содержимое.
Оказалось, что гораздо проще слушать изменение содержимого блока.

<div id="adress_box" style="visibility: hidden">Ищем доставку по адресу <span id="address_confirm"></span></div>

<script>
document.getElementById("address_confirm").addEventListener("DOMSubtreeModified", function() {
  alert('div is display!!!');
});
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rst0
@Rst0
Самый простой вариант
function checkDiv(element){
    let cssObj = window.getComputedStyle(element);
    if (cssObj.getPropertyValue("visibility") == 'visible') {
          alert('div is NOT display!!!');
    }
}
  let element = document.getElementById('address_confirm');
  setInterval(() => checkDiv(element), 1000);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект