PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

В чем разница между scroll и click?

Продвинутые темы

`scroll` и `click` — разные события: `click` возникает при нажатии на элемент (дискретно), а `scroll` — при прокрутке области (часто и многократно).

click

Дискретное событие нажатия на элемент:

button.addEventListener('click', handler);
  • Возникает один раз на действие (нажал-отпустил на элементе).
  • Всплывает — можно делегировать.
  • Есть target, координаты, preventDefault (отменить действие).
  • Целевой элемент — где кликнули.

scroll

Возникает при прокрутке элемента или страницы:

window.addEventListener('scroll', handler);
element.addEventListener('scroll', handler);
  • Срабатывает очень часто (много раз при прокрутке) → нужен throttle/debounce.
  • Не всплывает (у элемента; на document/window слушают напрямую).
  • Нельзя отменить прокрутку через preventDefault в обработчике scroll (для предотвращения используют wheel/touchmove или CSS).
  • Читают позицию: window.scrollY, element.scrollTop.

Различия

  • Частота: click — дискретно; scroll — многократно (перф-риск).
  • Всплытие: click всплывает; scroll — нет.
  • Отмена: click можно preventDefault; scroll — нет (по факту).
  • Назначение: click — действие пользователя; scroll — реакция на прокрутку.

Коротко для собеседования

click — дискретное событие нажатия, всплывает, можно preventDefault, для делегирования. scroll — частое событие прокрутки, не всплывает, нельзя отменить в обработчике, требует throttle/debounce; читают scrollY/scrollTop. Click — про действие, scroll — про прокрутку.

Другие вопросы раздела