У меня экран разделен на два DIV
с. Слева DIV
у меня есть несколько пикселей 50x50 DIV
с, справа DIV
у меня пустая сетка, сделанная из 80x80 LI
s. DIV
слева перетаскиваемы, и после падения на LI
они должны привязаться к центру этого LI
.
Звучит просто, верно? Я просто не знаю, как это сделать. Я попытался изменить свойства CSS top
и left
отброшенных DIV
, чтобы они соответствовали свойствам LI
, в которые они вставлены, но свойства left
и top
относительно левой DIV
.
Как лучше всего сделать, чтобы упавший элемент привязывался к центру элемента, в который он упал? Это должно быть просто, верно?
Редактировать: Я использую jQuery UI 1.7.2 с jQuery 1.3.2.
Редактировать 2: Для тех, кто еще имеет эту проблему, вот как я ее исправил:
Я использовал решение Кейта удалить перетаскиваемый элемент и поместить его в опущенный элемент в обратном вызове drop
подключаемого модуля:
function gallerySnap(droppedOn, droppedElement)
{
$(droppedOn).html('<div class="drop_styles">'+$(droppedElement).html()+'</div>' );
$(droppedElement).remove();
}
Мне не нужно, чтобы перетаскиваемый элемент снова был перетаскиваемым, но если вы это сделаете, просто привязайте перетаскиваемый элемент к нему снова.
Для меня этот метод также решил проблему, с которой я столкнулся при позиционировании выпадающих элементов (который был бы относительно левого DIV
) и прокрутке внутри второго DIV
. (Элементы останутся фиксированными на странице, теперь они будут прокручиваться).
Я поиграл с опциями привязки, чтобы они хорошо выглядели при перетаскивании, поэтому спасибо karim79 за это предложение.
Я, вероятно, не выиграю призы Awesome Code с этим, поэтому, если вы видите возможности для улучшения, пожалуйста, поделитесь!