Проверьте, видим ли элемент в DOM

Можно ли как-то проверить, виден ли элемент в чистом JS (нет jQuery)?

Так, например, на этой странице: Performance Bikes, если вы наводите курсор мыши на Deals (в верхнем меню), появляется окно сделок, но в начале оно не отображалось. Это в HTML, но это не видно.

Итак, учитывая элемент DOM, как я могу проверить, виден ли он или нет? Я старался:

window.getComputedStyle(my_element)['display']);

но это не похоже на работу. Интересно, какие атрибуты я должен проверить. Это приходит мне в голову:

display !== 'none'
visibility !== 'hidden'

Любые другие, которые я мог бы пропустить?

32 ответа

Это способ определить его для всех свойств CSS, включая видимость:

HTML:

<div id="element">div content</div>

CSS:

#element
{
visibility:hidden;
}

JavaScript:

var element = document.getElementById('element');
 if(element.style.visibility == 'hidden'){
alert('hidden');
}
else
{
alert('visible');
}

Он работает для любого свойства CSS и является очень универсальным и надежным.

      var visible = document.getElementById("yourelementID's");
 if (visible){
          // make events
 } else
 {
   //other events
 }
Другие вопросы по тегам