Розставте супергероїв полем
У цьому завданні ви можете перевірити своє розуміння відразу декількох аспектів Drag’n’Drop і DOM.
Зробіть так, щоб елементи з класом draggable
– можна було переносити мишкою. Як м’яч в цьому розділі.
Вимоги до реалізації:
- Використовуйте делегування подій для відстеження початку перетягування: тільки один обробник подій
mousedown
наdocument
. - Якщо елементи підносять до верхньої/нижньої межі вікна – вікно повинне прокручуватися вгору/вниз, щоб дозволити подальше перетягування.
- Горизонтальна прокрутка відсутня (трохи спрощує завдання, її просто додати).
- Елемент при перенесенні, навіть при різких рухах мишкою, не повинен навіть частково потрапити поза вікно.
Демо занадто велике для розміщення тут, перейдіть за посиланням нижче.
Щоб перетягнути елемент, ми можемо використовувати position: fixed
, це робить управління координатами простішим. Після завершення слід переключитися назад на position: absolute
, щоб елемент залишився частиною сторінки.
Коли координати знаходяться у верхній/нижній частині вікна, ми використовуємо window.scrollTo
для прокрутки.
Деталі рішення розписані в коментарях у коді.