Можете ли вы проверить отображение CSS объекта с помощью JavaScript?
можно ли проверить, если CSS объекта display == block
или none
С помощью JavaScript?
9 ответов:
элементы
style
свойство, которое скажет вам, что вы хотите, если стиль был объявлен встроенным или с JavaScript:console.log(document.getElementById('someIDThatExists').style.display);
даст вам строковое значение.
как sdleihssirhc говорит ниже, если элемент
display
наследуется или определяется правилом CSS, вам нужно будет получить его вычисляемый стиль:return element.currentStyle ? element.currentStyle.display : getComputedStyle(element, null).display;
для jQuery, вы имеете в виду такой?
$('#object').css('display');
Вы можете проверить это так:
if($('#object').css('display') === 'block') { //do something } else { //something else }
этот ответ не совсем то, что вы хотите, но это может быть полезно в некоторых случаях. Если вы знаете, что элемент имеет некоторые размеры при отображении, вы также можете использовать это:
var hasDisplayNone = (element.offsetHeight === 0 && element.offsetWidth === 0);
EDIT: почему это может быть лучше, чем прямая проверка CSS
display
собственность? Потому что вам не нужно проверять все родительские элементы. Если какой-то родительский элемент имеетdisplay: none
, его дети тоже скрыты, но все еще естьelement.style.display !== 'none'
.
чтобы узнать, видно ли это с помощью простого JavaScript, проверьте, является ли свойство отображения " нет "(не проверяйте "блок", оно также может быть пустым или "встроенным" и все еще быть видимым):
var isVisible = (elt.style.display != "none");
Если вы используете jQuery, вы можете использовать вместо этого:
var isVisible = $elt.is(":visible");
Базовый JavaScript-Кода:
if (document.getElementById("elementId").style.display == 'block') { alert('this Element is block'); }