Элемент: метод checkVisibility()
Базовая версия 2024
Новое
С марта 2024 года эта функция работает на последних версиях устройств и браузеров. Эта функция может не работать на старых устройствах или браузерах.
Метод checkVisibility() интерфейса Element проверяет, является ли элемент видимым.
Метод возвращает false в следующих ситуациях:
- У элемента нет связанного блока, например, потому что свойство CSS
displayустановлено в значениеnoneилиcontents. - Элемент не отображается, потому что элемент или предковый элемент устанавливает свойство
content-visibilityв значениеhidden.
Необязательный параметр позволяет выполнять дополнительные проверки для определения различных интерпретаций понятия «видимость». Например, можно дополнительно проверить, имеет ли элемент непрозрачность 0, если значение свойства элемента visibility делает его невидимым, или если свойство элемента content-visibility имеет значение auto и его отображение в данный момент пропускается.
Синтаксис
checkVisibility(options)
Параметры
optionsНеобязательно-
Объект, указывающий дополнительные проверки. Возможные значения параметров:
contentVisibilityAuto-
trueпроверяет, имеет ли элемент свойствоcontent-visibility(или наследует) значениеauto, и в данный момент пропускается его отображение.falseпо умолчанию. opacityProperty-
trueпроверяет, имеет ли элемент свойствоopacity(или наследует) значение0.falseпо умолчанию. visibilityProperty-
trueпроверяет, является ли элемент невидимым из-за значения его свойстваvisibility.falseпо умолчанию.Примечание: Невидимые элементы включают в себя элементы, имеющие значение
visibility: hidden, и некоторые типы элементов, имеющиеvisibility: collapse. checkOpacity-
Историческое алиас для
opacityProperty. checkVisibilityCSS-
Историческое алиас для
visibilityProperty.
Возвращаемое значение
false если выполняются какие-либо из следующих условий, в противном случае true:
- У элемента нет связанного блока.
- У элемента свойство
content-visibilityимеет (или наследует) значениеhidden. -
opacityProperty(илиcheckOpacity) имеет значениеtrueи у элемента свойствоopacityимеет (или наследует) значение0. -
visibilityProperty(илиcheckVisibilityCSS) имеет значениеtrueи элемент невидим из-за значения его свойстваvisibility. -
contentVisibilityAutoимеет значениеtrue, свойствоcontent-visibilityимеет (или наследует) значениеauto, и отображение элемента пропускается.
Примеры
Тестирование checkVisibility() с различными CSS
В следующем примере показано, как результат checkVisibility() может изменяться при различных значениях display, content-visibility, visibility, и opacity свойств CSS.
HTML
HTML определяет элемент <select> для свойств CSS, которые влияют на результаты checkVisibility(). Первые (выбранные по умолчанию) значения должны приводить к тому, что checkVisibility() возвращает true при применении к элементу, в то время как другие значения влияют на видимость.
<select id="css_display" name="css_display"> <option value="block" selected>display: block</option> <option value="none">display: none</option> <option value="content">display: content</option> </select> <select id="css_content_visibility" name="css_content_visibility"> <option value="visible" selected>content-visibility: visible</option> <option value="hidden">content-visibility: hidden</option> <option value="auto">content-visibility: auto</option> </select> <select id="css_opacity" name="css_opacity"> <option value="1" selected>opacity: 1</option> <option value="0">opacity: 0</option> </select> <select id="css_visibility" name="css_visibility"> <option value="visible" selected>visibility: visible</option> <option value="hidden">visibility: hidden</option> <option value="collapse">visibility: collapse</option> </select>
Далее идет элемент <pre>, который используется для вывода результатов проверки checkVisibility() без параметров в параметре и для каждого значения отдельных параметров. В конце находится элемент, который будет проверяться (к которому будут применяться выбранные значения свойств CSS).
<pre id="output_result"></pre> <div id="test_element">The element to be checked for visibility.</div>
CSS
CSS просто выделяет элемент, который будет проверяться.
#test_element {
border: solid;
border-color: blue;
}
JavaScript
Код ниже получает каждый из элементов <select>. Метод updateCSS() вызывается при запуске и при изменении значений элементов select для применения выбранных свойств CSS к целевому элементу,
const displayCssSelect = document.getElementById("css_display");
const contentVisibilityCssSelect = document.getElementById(
"css_content_visibility",
);
const displayCssOpacity = document.getElementById("css_opacity");
const displayCssVisibility = document.getElementById("css_visibility");
const outputResult = document.getElementById("output_result");
const elementToCheck = document.getElementById("test_element");
updateCSS();
const cssSelectors = document.querySelectorAll("select");
cssSelectors.forEach((select) => {
select.addEventListener("change", (event) => {
updateCSS();
});
});
function updateCSS() {
// Apply selected CSS properties to target element
elementToCheck.style.display = displayCssSelect.value;
elementToCheck.style.contentVisibility = contentVisibilityCssSelect.value;
elementToCheck.style.opacity = displayCssOpacity.value;
elementToCheck.style.visibility = displayCssVisibility.value;
// Call checkVisibility() on element using default and each of options
const defaultVisibilityCheck = elementToCheck.checkVisibility();
const opacityVisibilityCheck = elementToCheck.checkVisibility({
opacityProperty: true,
});
const cssVisibilityCheck = elementToCheck.checkVisibility({
visibilityProperty: true,
});
const contentVisibilityAutoCheck = elementToCheck.checkVisibility({
contentVisibilityAuto: true,
});
// Output the results of the tests
outputResult.innerText = `Checks on element below (may be hidden):
- Result of checkVisibility(): ${defaultVisibilityCheck}
- Result of checkVisibility({opacityProperty: true}): ${opacityVisibilityCheck}
- Result of checkVisibility({visibilityProperty: true}): ${cssVisibilityCheck}
- Result of checkVisibility({contentVisibilityAuto: true}): ${contentVisibilityAutoCheck}`;
}
Результат
Результаты показаны ниже. При изменении выбора результаты будут применяться к тестовому элементу (синяя рамка), и должны отображаться результаты checkVisibility() для каждой настройки. Например, если вы установите opacity: 0, тест (только) должен указывать false. Однако, если вы установите display: none, все тесты должны возвращать `false.
Спецификации
| Спецификация |
|---|
| Модуль CSSOM View # dom-element-checkvisibility |
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
checkVisibility |
105 | 105 | 106 | 91 | 17.4 | 105 | 106 | 72 | 17.4 | 20.0 | 105 |
options_checkOpacity_parameter |
105 | 105 | 106 | 91 | 17.4 | 105 | 106 | 72 | 17.4 | 20.0 | 105 |
options_checkVisibilityCSS_parameter |
105 | 105 | 106 | 91 | 17.4 | 105 | 106 | 72 | 17.4 | 20.0 | 105 |
options_contentVisibilityAuto_parameter |
121 | 121 | 122 | 107 | 17.4 | 121 | 122 | 81 | 17.4 | 25.0 | 121 |
options_opacityProperty_parameter |
121 | 121 | 122 | 107 | 17.4 | 121 | 122 | 81 | 17.4 | 25.0 | 121 |
options_visibilityProperty_parameter |
121 | 121 | 122 | 107 | 17.4 | 121 | 122 | 81 | 17.4 | 25.0 | 121 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility