JS властивість CSSStyleDeclaration.cursor
Загальний опис
element.style.cursor
– це властивість, яка встановлює або повертає тип курсора миші, який буде відображатися при наведенні на елемент. Ця властивість дозволяє налаштувати зовнішній вигляд курсора, забезпечуючи кращу взаємодію користувача з веб-сторінкою.
Властивість cursor
може мати різні значення, такі як default
, pointer
, move
, text
, wait
, crosshair
, not-allowed
, а також багато інших. Крім стандартних значень, можна використовувати URL-адресу для встановлення користувацького зображення курсора. Це забезпечує велику гнучкість у дизайні та інтерфейсі користувача.
Щоб змінити тип курсора для конкретного елемента за допомогою JavaScript, спочатку потрібно отримати посилання на цей елемент, а потім встановити властивість cursor
через об'єкт style
.
Приклад: встановлення курсора у вигляді руки при наведенні.
let element = document.getElementById('myElement');
element.style.cursor = 'pointer';
Приклад: встановлення стандартного курсора.
let element = document.getElementById('myElement');
element.style.cursor = 'default';
Приклад: встановлення курсора у вигляді текстового курсора (часто використовується для текстових полів).
let element = document.getElementById('myTextField');
element.style.cursor = 'text';
Приклад: встановлення курсора у вигляді годинника (для індикації очікування).
let element = document.getElementById('myButton');
element.style.cursor = 'wait';
Для використання користувацького зображення як курсора, можна задати URL-адресу зображення. Зображення повинно бути маленьким і відповідати стандартам курсорів.
Приклад: встановлення користувацького курсора.
let element = document.getElementById('myElement');
element.style.cursor = 'url(myCursor.png), auto';
У цьому прикладі, якщо зображення myCursor.png
не завантажується, курсор повернеться до значення auto
.
Практичні застосування
Використання різних курсорів може значно покращити взаємодію користувача з веб-сторінкою. Наприклад, курсор у вигляді руки (pointer
) зазвичай використовується для посилань або кнопок, що інтуїтивно зрозуміло для користувача.
Приклад: встановлення курсора для посилання.
let link = document.querySelector('a');
link.style.cursor = 'pointer';
Використання курсора move
часто доцільно для елементів, які можна перетягувати.
let draggable = document.getElementById('draggable');
draggable.style.cursor = 'move';
Додаткові поради
При зміні курсора важливо забезпечити, щоб зміни були зрозумілими та очікуваними для користувача. Надмірне використання нестандартних курсорів може заплутати користувачів, тому завжди враховуйте контекст використання та загальний дизайн сторінки.
Наприклад, зміна курсора на not-allowed
може сигналізувати про неактивний стан елемента.
let disabledButton = document.getElementById('disabledButton');
disabledButton.style.cursor = 'not-allowed';
Властивість element.style.cursor
є потужним інструментом для покращення користувацького досвіду, коли використовується розумно та в межах очікувань користувача.
Порада: | Змінюючи курсор для інтерактивних елементів, таких як кнопки або посилання, переконайтесь, що ви вказуєте курсор, який відповідає очікуванням користувачів. Використання курсора |
Порада: | Використовуйте курсор |
Порада: | Для елементів, які не є інтерактивними або доступ до яких тимчасово заборонено, використовуйте курсор |
Порада: | Щоб додати динамічність на вашу сторінку, можна змінювати курсор під час певних подій. Наприклад, при наведенні на елемент можна встановити курсор у вигляді руки, а при виході миші з елемента – повертати до стандартного значення. Для цього можна використовувати обробники подій:
Це забезпечить кращу інтерактивність та зворотний зв'язок для користувача. |
Синтаксис
element.style.cursor
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
3 |
8 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
Цей приклад дозволяє користувачу обирати тип курсора з випадаючого списку та застосовувати його до елемента з ідентифікатором interactiveElement
. При наведенні курсора на цей елемент зміниться вигляд курсора відповідно до вибраного значення.
У цьому прикладі ми створюємо новий елемент <div>
, який змінює курсор на "pointer" (рука з пальцем) при наведенні на нього. Це може бути корисно для динамічно створених елементів на веб-сторінці, коли необхідно вказати користувачеві, що на елемент можна натиснути.
// Створюємо новий елемент <div>
const newDiv = document.createElement('div');
newDiv.innerText = 'Наведіть на мене курсор';
newDiv.style.width = '200px';
newDiv.style.height = '100px';
newDiv.style.backgroundColor = 'lightblue';
newDiv.style.textAlign = 'center';
newDiv.style.lineHeight = '100px';
newDiv.style.border = '1px solid black';
// Додаємо обробник події наведення курсора
newDiv.addEventListener('mouseover', function() {
newDiv.style.cursor = 'pointer';
});
// Додаємо обробник події зняття наведення курсора
newDiv.addEventListener('mouseout', function() {
newDiv.style.cursor = 'default';
});
// Додаємо елемент до тіла документу
document.body.appendChild(newDiv);
У цьому прикладі ми змінюємо курсор на "progress" (показує користувачеві, що відбувається процес) під час виконання асинхронної операції, і повертаємо його на "default" після завершення операції. Це корисно для інформування користувачів про те, що операція триває, наприклад, під час завантаження даних.
// Знаходимо елемент кнопки
const button = document.querySelector('#loadDataButton');
// Додаємо обробник події натискання на кнопку
button.addEventListener('click', async function() {
// Змінюємо курсор на "progress" (годинник або коло, що крутиться)
document.body.style.cursor = 'progress';
try {
// Імітуємо асинхронний запит
await new Promise(resolve => setTimeout(resolve, 3000));
// Після завершення операції, змінюємо курсор назад на "default"
document.body.style.cursor = 'default';
alert('Дані завантажено!');
} catch (error) {
// У разі помилки, змінюємо курсор назад на "default"
document.body.style.cursor = 'default';
console.error('Помилка завантаження даних', error);
}
});