Чтобы сделать что-то перетаскиваемое ... (это может быть довольно длинным, поэтому просто перечисление шагов, а не кода, если у кого-то есть энергия, чтобы написать это, не будет винить вас за другой ответиз этого.)
Шаг 1. Сделайте положение div поп-ап вверх по z, когда мышь / касание вниз, и переместите положение относительно окна на основе положения мыши / касания.
Шаг 2. Сделайтевсе потенциальные позиции размещения прослушиваются в мышином или эквивалентном (часто JavaScript делает временные деления высоты 1 или 0 между существующими.)Если мышь / касание уходит, сделайте их неактивными.
Шаг 3а.Если mouseup / endtouch, когда потенциальный div размещения активен, замените его на span.
Шаг 3b.Если mouseup / endtouch при отсутствии активного div размещения, удалите временные div и поместите выбранный div обратно туда, где он был.
(Примечание. Перетаскивание JavaScript не поддерживается в достаточном количестве мобильных браузеров.на данный момент. Через несколько лет, вероятно, будет сделан выбор в пользу лучшего маршрута)