Чтобы проверить, не сфокусирован ли интерактивный элемент в JavaScript, вы можете использовать различные методы. Вот несколько вариантов:
- document.activeElement: вы можете сравнить активный элемент с интерактивным элементом, который хотите проверить. Если они не совпадают, то интерактивный элемент не находится в фокусе.
if (document.activeElement !== interactiveElement) {
// The interactive element is not focused
}
-
Псевдокласс CSS
- :focus: вы можете использовать псевдокласс :focus в CSS, чтобы по-разному стилизовать интерактивный элемент, когда он находится в фокусе. Проверив, применен ли к элементу стиль :focus, вы можете определить, находится ли он в фокусе.
var isFocused = window.getComputedStyle(interactiveElement, null).getPropertyValue("outline-style") === "none";
if (!isFocused) {
// The interactive element is not focused
}
-
Свойство
- tabIndex: вы можете проверить свойство tabIndex интерактивного элемента. Если он имеет значение -1, это означает, что элемент не доступен для фокусировки.
if (interactiveElement.tabIndex === -1) {
// The interactive element is not focused
}
- Прослушиватели событий: к интерактивному элементу можно добавить прослушиватели событий для обнаружения событий фокусировки и размытия. Если событие фокуса не срабатывает, это означает, что элемент не находится в фокусе.
interactiveElement.addEventListener('focus', function() {
// Element is focused
});
interactiveElement.addEventListener('blur', function() {
// Element is not focused
});