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