JS властивість Event.deltaMode
Загальний опис
deltaMode – це властивість об'єкта WheelEvent, яка визначає одиницю вимірювання для значень deltaX, deltaY та deltaZ. Властивість deltaMode може мати три можливі значення: 0 (DOM_DELTA_PIXEL), 1 (DOM_DELTA_LINE) або 2 (DOM_DELTA_PAGE). Ці значення відповідають тому, як інтерпретувати одиниці вимірювання для змінних deltaX, deltaY та deltaZ під час прокручування.
Якщо deltaMode дорівнює 0, значення вимірюються у пікселях, що найчастіше використовується для точного контролю над прокручуванням на екрані. Значення 1 означає, що одиницею є рядок, що дозволяє легко реалізувати прокручування, наприклад, у текстових полях або списках. Якщо deltaMode дорівнює 2, зміщення відбувається на рівні сторінки, що може бути корисним для великих областей прокручування, таких як цілі сторінки.
Приклад використання deltaMode для визначення, в яких одиницях вимірюється прокрутка:
document.addEventListener('wheel', function(event) {
switch(event.deltaMode) {
case 0:
console.log('Прокрутка вимірюється в пікселях');
break;
case 1:
console.log('Прокрутка вимірюється в рядках');
break;
case 2:
console.log('Прокрутка вимірюється в сторінках');
break;
}
});
Цей приклад допомагає визначити одиницю вимірювання під час прокручування, що дозволяє адаптувати поведінку додатку в залежності від типу пристрою або налаштувань прокручування. Наприклад, для мишей прокручування, як правило, відбувається у пікселях, а для клавіатурних подій – у рядках або сторінках. deltaMode також є корисною властивістю для розробників, які працюють з кросплатформенними застосунками або адаптують веб-контент для різних пристроїв.
| Порада: | При |
| Порада: | Якщо |
| Порада: | Для тестування різних значень |
Синтаксис
wheelEvent.deltaMode
Значення
Return
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
31 |
17 |
8 |
18 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4.3 |
31 |
17 |
8 |
| Переглядач | ||
|---|---|---|
- |
- |
Приклади
Цей приклад створює прокручувану область, у якій користувач може бачити поточний режим deltaMode та значення deltaX, deltaY, і deltaZ під час скролінгу. deltaMode дозволяє адаптуватися до різних налаштувань пристрою введення, що корисно для точної обробки скролінгу у користувацьких інтерфейсах.
У цьому прикладі значення deltaY нормалізується відповідно до deltaMode, щоб адаптувати прокручування в пікселях для різних типів пристроїв і одиниць вимірювання. Це допомагає зробити прокручування більш уніфікованим.
document.addEventListener('wheel', function(event) {
let normalizedDelta;
if (event.deltaMode === 1) {
normalizedDelta = event.deltaY * 40; // множимо на 40 для адаптації під пікселі
} else if (event.deltaMode === 2) {
normalizedDelta = event.deltaY * 800; // множимо на 800 для сторінкової прокрутки
} else {
normalizedDelta = event.deltaY; // значення в пікселях
}
console.log('Нормалізоване значення прокручування:', normalizedDelta);
});
Цей приклад використовує deltaMode для визначення типу прокрутки і змінює поведінку залежно від режиму. Це дозволяє створити адаптивний інтерфейс, який відповідає на різні типи прокручування, такі як прокручування мишею, клавіатурою або іншими пристроями.
document.addEventListener('wheel', function(event) {
if (event.deltaMode === 0) {
console.log('Прокручуємо елемент плавно по пікселях');
// Виконати плавну прокрутку
} else if (event.deltaMode === 1) {
console.log('Прокручуємо на кілька рядків');
// Прокрутка з проміжками між рядками
} else if (event.deltaMode === 2) {
console.log('Прокручуємо цілу сторінку');
// Прокрутка на цілу сторінку
}
});
