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

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

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

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

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

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

JS властивість Array.deltaY

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

deltaY – це властивість об’єкта події WheelEvent, яка повертає значення вертикального зсуву під час прокручування. Значення виражене в пікселях і вказує на те, наскільки сильно користувач прокрутив колесо миші або тачпад у вертикальному напрямку. Позитивні значення показують, що прокрутка була вниз, а негативні – вгору.

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

Щоб отримати значення deltaY, потрібно обробити подію wheel, яка може бути застосована до конкретного елемента або до всієї сторінки. Ось простий приклад використання deltaY для виведення величини прокрутки в консоль:

document.addEventListener('wheel', function(event) {
  console.log('Вертикальний зсув:', event.deltaY);
});

У цьому прикладі значення deltaY буде відображатися під час кожної події прокрутки, що дає змогу відстежувати напрямок і величину вертикального зсуву. Різні пристрої, такі як миші або тачпади, можуть повертати різні значення для deltaY, тому часто використовують нормалізацію або додаткову обробку, щоб значення були уніфікованими між різними платформами. Це допомагає забезпечити стабільний досвід користувача незалежно від того, яким пристроєм він користується.

Порада:

Для ефектів, що залежать від прокручування, часто доцільно перевіряти не лише значення deltaY, але й поєднувати його з requestAnimationFrame. Це допомагає забезпечити, щоб анімації були більш плавними і не перевантажували браузер.

Порада:

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

Порада:

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

Синтаксис

wheelEvent.deltaY

Значення

Return

Переглядачі

Переглядач

31

17

8

18

12

Переглядач

4.4.3

31

17

8

Переглядач

-

-

Приклади


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

const box = document.getElementById('zoomBox');
let scale = 1;

window.addEventListener('wheel', function(event) {
  event.preventDefault(); // Забороняємо стандартну прокрутку
  scale += event.deltaY * -0.01; // Контролюємо масштаб на основі deltaY
  scale = Math.min(Math.max(0.5, scale), 2); // Обмежуємо масштаб
  box.style.transform = `scale(${scale})`;
});

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

const resizableDiv = document.getElementById('resizable');
let height = 100;

resizableDiv.addEventListener('wheel', function(event) {
  event.preventDefault();
  height += event.deltaY * 0.5;
  height = Math.max(50, Math.min(500, height)); // Встановлюємо межі для висоти
  resizableDiv.style.height = `${height}px`;
});