JavaScript | drag & drop некорректное перетаскивание блоков div

JavaScript | drag & drop некорректное перетаскивание блоков div

При перетаскивании HTML элементов div могут возникнуть проблемы с бросанием в область.

Иногда может случиться так, что дочерние блоки имеют абсолютное позиционирование относительно своего родителя. В результате суммарная ширина детей может быть больше, чем ширина самого родителя. Также между детьми могут быть пустоты, которые только увеличивают суммарную ширину от края до края по всем детям.

И получается так, что мы хватаем одного ребёнка, двигаем, выходим за пределы его собственных границ, пытаемся бросить блок, но бросание не получается из-за того, что у родителя тупо не хватает ширины и в этом месте пространства родитель не присутствует. Браузер выдаёт соответствующий значок о невозможности бросания div элемента.

Мы говорим о CSS свойстве родителя:

position: relative

А CSS свойства его детей:

position: absolute

Чтобы избежать проблем с перетаскиванием, нужно правильно указывать ширину родителя — ширину зоны бросания.

 

Информационные ссылки

Стандарт HTMLhttps://html.spec.whatwg.org/multipage/dnd.html#dom-draggable

Стандарт CSS Positioned Layout Module Level 3https://www.w3.org/TR/css-position-3/