Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

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 є потужним інструментом для покращення користувацького досвіду, коли використовується розумно та в межах очікувань користувача.

Порада:

Змінюючи курсор для інтерактивних елементів, таких як кнопки або посилання, переконайтесь, що ви вказуєте курсор, який відповідає очікуванням користувачів. Використання курсора pointer для кнопок та посилань допомагає користувачам зрозуміти, що ці елементи є клікабельними. Наприклад, button.style.cursor = 'pointer';.

Порада:

Використовуйте курсор wait для індикації процесів, які займають певний час, таких як завантаження даних. Це надасть користувачам візуальний зворотний зв'язок про те, що потрібно почекати. Приклад: element.style.cursor = 'wait'; може бути встановлено на кнопку під час виконання запиту до сервера.

Порада:

Для елементів, які не є інтерактивними або доступ до яких тимчасово заборонено, використовуйте курсор not-allowed. Це допомагає користувачам зрозуміти, що цей елемент наразі недоступний для взаємодії. Наприклад, element.style.cursor = 'not-allowed'; може бути встановлено на вимкнену кнопку.

Порада:

Щоб додати динамічність на вашу сторінку, можна змінювати курсор під час певних подій. Наприклад, при наведенні на елемент можна встановити курсор у вигляді руки, а при виході миші з елемента – повертати до стандартного значення. Для цього можна використовувати обробники подій:

element.addEventListener('mouseover', function() {
  element.style.cursor = 'pointer';
});
element.addEventListener('mouseout', function() {
  element.style.cursor = 'default';
});

Це забезпечить кращу інтерактивність та зворотний зв'язок для користувача.

Синтаксис

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);
    }
});