В чем разница между 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 — про прокрутку.