Книга: Выразительный JavaScript
Фокус
Фокус
В отличие от большинства элементов документа HTML, поля форм могут получать фокус ввода клавиатуры. При щелчке или выборе их другим способом они становятся активными, т.е. главными приёмниками клавиатурного ввода.
Если в документе есть текстовое поле, то набираемый текст появится в нём, только если поле имеет фокус ввода. Другие поля по-разному реагируют на клавиатуру. К примеру, <select>
пытается перейти на вариант, содержащий текст, который вводит пользователь, а также отвечает на нажатия стрелок, передвигая выбор варианта вверх и вниз.
Управлять фокусом из JavaScript можно методами focus
и blur
. Первый перемещает фокус на элемент DOM, из которого он вызван, а второй убирает фокус. Значение document.activeElement
соответствует текущему элементу, получившему фокус.
<input type="text">
<script>
document.querySelector("input").focus();
console.log(document.activeElement.tagName);
// ? INPUT
document.querySelector("input").blur();
console.log(document.activeElement.tagName);
// ? BODY
</script>
На некоторых страницах нужно, чтобы пользователь сразу начинал работу с какого-то из полей формы. При помощи JavaScript можно передать этому полю фокус при загрузке документа, но в HTML также есть атрибут autofocus
, который приводит к тому же результату, но сообщает браузеру о наших намерениях. В этом случае браузер может отменить это поведение в подходящих случаях, например когда пользователь перевёл фокус куда-то ещё.
<input type="text" autofocus>
Браузеры по традиции позволяют пользователю перемещать фокус клавишей Tab. Мы можем влиять на порядок перемещения через атрибут tabindex
. В примере документ будет переносить фокус с текстового поля на кнопку OK, вместо того, чтобы сначала пройти через ссылку help.
<input type="text" tabindex=1> <a href=".">(help)</a>
<button tabindex=2>OK</button>
По умолчанию, большинство типов элементов HTML не получают фокус. Но добавив tabindex
к элементу, вы сделаете возможным получение им фокуса.
- Фокус-группы вместо пудры
- Фокусное расстояние и объективы
- Блокировка автофокуса
- Язык Си - искусный фокусник: создание псевдоимен
- Способ первый Фокусировка на конкретном действии
- 7. Глас народа Фокусы фокус-групп
- На каких направлениях сфокусировать усилия
- 2. Математические фокусы
- Глава 18 Четко сфокусируйте свои онлайн-усилия
- Эмпатия, фокус, формулировка, прототип, тестирование
- Фокусирование внимания на отдельных задачах
- 1.5.1. Некоторые фокусы работы с Dock