BACK
Use casesDrag handler — mouseDown → mouseMove → mouseUp
Use cases · 10

Drag handler — mouseDown → mouseMove → mouseUp

Паттерн

DnD, ползунки, ресайз панелей, рисование — все они описываются одной формулой: «после mousedown слушаем mousemove, пока не случился mouseup». На imperative-коде это всегда переплетение флагов и обработчиков. На RxJS — один пайплайн.

Операторы и их роли

  • switchMap — для каждого mousedown создаём новый под-поток перемещений.
  • takeUntil(mouseUp$) — этот под-поток живёт ровно до отпускания кнопки.
  • map — считаем дельту от точки старта.

Что достигаем

События между жестами автоматически игнорируются. Никаких ручных removeEventListener — RxJS чистит подписку сам.

script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...