focus() у JavaScript — фокус на полі форми прямо з коду
Загальний опис
Метод focus() визначений в інтерфейсі HTMLElement, призначений для надання фокусу певному HTML-елементу. Коли елемент отримує фокус, він стає активним та готовим до взаємодії з користувачем, наприклад, для введення тексту в поле форми або активації кнопки. Метод focus() важливий для управління поведінкою користувацького інтерфейсу, зокрема, для спрощення навігації за допомогою клавіатури та забезпечення кращого користувацького досвіду.
Використання focus()
Базове використання: Найпростіше використання
focus()полягає в наданні фокусу певному елементу при завантаженні сторінки або відповідно до певної події. Це може бути корисним для керування тим, на який елемент слід звернути увагу користувача в першу чергу.window.onload = function() { document.getElementById("searchInput").focus(); };У цьому прикладі фокус автоматично встановлюється на поле пошуку після завантаження сторінки.
Покращення форм користувача: Метод
focus()часто використовується у формах, для керування порядком введення даних користувачем. Наприклад, після валідації форми, можна автоматично перемістити фокус на поле, де була виявлена помилка.function validateForm() { let inputField = document.getElementById("emailInput"); if (inputField.value === "") { alert("Будь ласка, введіть електронну адресу"); inputField.focus(); return false; } return true; }Тут, якщо поле електронної пошти порожнє, фокус автоматично переходить до цього поля.
Інтерактивність веб-інтерфейсів:
focus()може використовуватися для створення більш інтерактивних веб-інтерфейсів. Наприклад, фокус може бути переміщений на модальне вікно або випливаюче меню, коли воно з'являється на сторінці.function openModal() { let modal = document.getElementById("myModal"); modal.style.display = "block"; modal.focus(); }В цьому випадку при відкритті модального вікна фокус переходить на нього.
Навігація за допомогою клавіатури: У контексті доступності та навігації за допомогою клавіатури,
focus()дозволяє користувачам, які не використовують мишу, легко переміщатися між різними елементами інтерфейсу.document.getElementById("nextButton").onclick = function() { document.getElementById("nextInput").focus(); };Тут натискання кнопки переміщує фокус на наступне поле вводу.
Використання методу focus() є важливим інструментом для створення інтуїтивно зрозумілого та зручного користувацького інтерфейсу, який полегшує навігацію та взаємодію з веб-сайтом, особливо з точки зору доступності та зручності користувачів.
- Порада
-
У односторінкових застосунках (SPA),
автор: Bondfocus()може бути корисним для керування фокусом при перемиканні між різними частинами застосунку без перезавантаження сторінки. - Порада
-
Пам'ятайте, що не всі елементи можуть отримати фокус. Зазвичай фокус доступний для елементів форм, таких як
автор: Bondinput,button, а також для посилань і деяких інших елементів. Використанняfocus()на елементах, які стандартно не підтримують фокус, може не мати ефекту. - Порада
-
Хоча
автор: Bondfocus()є потужним інструментом, важливо не зловживати ним. Надмірне або неочікуване використання може спричинити плутанину або фрустрацію у користувачів. Використовуйте цей метод обдумано, зберігаючи інтуїтивно зрозумілий інтерфейс.
Синтаксис
focus()
focus(options)
Параметри
options-
Опціональний об'єкт для керування процесом фокусування. Цей об'єкт може містити наступні властивості:
preventScroll(необов'язковий): Булеве значення, яке вказує, чи слід уникати автоматичної прокрутки, щоб призначити фокус. Встановлення цього параметра в true запобігає прокручуванню до елемента, який отримує фокус.preventScrollIntoView(необов'язковий): Булеве значення, яке вказує, чи слід уникати автоматичного переміщення елемента в область видимості при фокусуванні. Встановлення цього параметра в true запобігає переміщенню елемента в область видимості, якщо він не видно в даний момент.
Повернення
none-
Повертає: None (undefined).
автор: Bond
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | ≤12.1 | 12 | 4 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | |
|---|---|
| — |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі метод focus() використовується для автоматичного встановлення фокусу на текстовому полі при завантаженні сторінки. Це корисно, коли ви хочете, щоб користувачі відразу могли вводити дані у важливе поле, наприклад, у формі пошуку або логіну.
HTML
<input type="text" id="searchInput" value="текст для прикладу" placeholder="Введи щось">
JS
// Визначення елемента за його ID
let searchInput = document.getElementById("searchInput");
// Встановлення фокусу на елемент
searchInput.focus();
У цьому більш складному прикладі використовується focus() у поєднанні з перевіркою умови. Приклад демонструє, як можна встановити фокус на поле вводу за певних умов, наприклад, якщо попереднє поле вводу було заповнене неправильно.
HTML
<input type="email" id="emailInput" value="[email protected]" placeholder="Введи щось">
JS
// Функція валідації поля вводу
function validateInput() {
let emailInput = document.getElementById("emailInput");
if (emailInput.value === "") {
// Якщо поле email порожнє, встановити на ньому фокус
emailInput.focus();
console.log("Введіть адресу електронної пошти.");
} else {
// Логіка для обробки правильно заповненого поля
console.log("Email введено коректно.");
}
}
// Виклик функції валідації, наприклад, при натисканні на кнопку
validateInput();
У цьому прикладі є поле вводу і кнопка. Кнопка викликає функцію setFocus(), яка встановлює фокус на полі вводу за допомогою методу focus(). Таким чином, коли користувач натискає кнопку "Встановити фокус", він автоматично переміщається до поля вводу.
HTML
<header>
<h2 class="title">HTMLElement: focus() method</h2>
<p class="description">Метод focus() встановлює фокус на вказаному елементі.</p>
</header>
<main>
<div class="result">
<input type="text" id="myInput" placeholder="Введіть текст">
<button onclick="setFocus()">Встановити фокус</button>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: Arial, sans-serif;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
button {
padding: 10px;
font-size: 16px;
cursor: pointer;
}
JS
function setFocus() {
let inputElement = document.getElementById("myInput");
inputElement.focus();
}
//# sourceURL=pen.js
Коментарі
Коментарів ще немає — будьте першим!