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

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

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

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

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

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

JS властивість Event.wheel

Загальний опис

Подія wheel спрацьовує при прокручуванні колеса миші або використанні трекпада. Ця подія надає програмісту можливість реагувати на прокрутку в будь-якому напрямку: вертикально або горизонтально. Вона може бути корисною для створення кастомних інтерфейсів або покращення стандартної прокрутки на сторінці, наприклад, зміни масштабу контенту або керування анімаціями.

Щоб використовувати подію wheel, можна додати обробник події до елемента:

const element = document.querySelector('#scrollable');
element.addEventListener('wheel', (event) => {
  console.log(`Прокручено на: ${event.deltaY}`);
});

Об'єкт події wheel містить кілька важливих властивостей, які можна використовувати для аналізу прокрутки. Наприклад, deltaY показує величину вертикальної прокрутки (від'ємне значення вказує на прокрутку вгору, додатне — вниз). deltaX відповідає за горизонтальну прокрутку.

За допомогою події wheel можна також керувати поведінкою сторінки при прокручуванні. Наприклад, щоб блокувати стандартну прокрутку сторінки, можна використовувати event.preventDefault():

element.addEventListener('wheel', (event) => {
  event.preventDefault();  // Блокує стандартну прокрутку
  // Кастомна логіка
});

Якщо необхідно збільшити чи зменшити чутливість до прокрутки, можна використовувати значення event.deltaMode. Наприклад, якщо deltaMode дорівнює 0, прокрутка здійснюється у пікселях, тоді як інші значення можуть означати прокрутку по рядках або сторінках.

Подію wheel часто використовують для масштабування контенту або керування кастомними ефектами прокрутки, зокрема для інтерактивних сторінок, слайдерів та інших елементів з унікальними інтерфейсними рішеннями.

Порада:

Майте на увазі, що подія wheel може спрацьовувати дуже часто (кілька разів на секунду). Якщо виконуєте важкі операції при прокручуванні, використовуйте техніки оптимізації, такі як дебаунсинг або тротлінг.

Порада:

Подія wheel надає можливість не тільки реагувати на прокрутку мишею, але й на подібні жести на трекпадах. Переконайтесь, що ваша логіка коректно працює для обох типів пристроїв.

Порада:

Використовуйте event.deltaX і event.deltaY для розрізнення вертикальної та горизонтальної прокрутки, особливо якщо ви працюєте з контентом, що може прокручуватись в обох напрямках, як у випадку зі слайдерами або складними макетами.

Синтаксис

element.addEventListener('wheel', function(event) {
  // Дії при прокручуванні
});

Значення

Return

Переглядачі

Переглядач

66

57

11.1

53

16

Переглядач

66

66

57

11.3

Переглядач

15.0.0

1.0

Приклади


У цьому прикладі користувач може змінювати розмір зображення за допомогою прокручування миші. При кожному прокручуванні подія wheel коригує масштаб зображення, збільшуючи або зменшуючи його. Масштаб обмежений в межах від 0.5x до 3x для запобігання надто великих або малих значень. Кнопка "Скинути масштаб" дозволяє швидко повернутися до початкового значення масштабу (1x).

У цьому прикладі обробник події wheel використовується для зміни масштабу елемента. Прокрутка вниз збільшує масштаб, а прокрутка вгору зменшує його. Це корисно для реалізації кастомного масштабування зображень або інших елементів на сторінці.

const zoomableElement = document.querySelector('#zoomable');
let scale = 1;

zoomableElement.addEventListener('wheel', (event) => {
  event.preventDefault();
  scale += event.deltaY * -0.01;  // Збільшуємо або зменшуємо масштаб
  scale = Math.min(Math.max(.125, scale), 4);  // Обмежуємо масштаб
  zoomableElement.style.transform = `scale(${scale})`;
});

Цей приклад показує, як перетворити вертикальну прокрутку на горизонтальну. Використовується значення event.deltaY для управління горизонтальною прокруткою елемента. Це може бути корисним для горизонтальних галерей або слайдерів, де користувачі можуть прокручувати вміст мишею або трекпадом.

const horizontalScroller = document.querySelector('#scroller');

horizontalScroller.addEventListener('wheel', (event) => {
  event.preventDefault();
  horizontalScroller.scrollLeft += event.deltaY;  // Прокручуємо горизонтально замість вертикальної прокрутки
});