Изменить контейнер элементов без изменения положения элементов

0

Я перетаскиваю элемент из одного контейнера во второй контейнер (контейнеры независимы). При запуске перетаскивания я добавляю элемент перетаскивания в тело (это необходимо). Если я отбрасываю элемент во второй контейнер, я получаю координаты элемента относительно тела вместо второго контейнера, поэтому мой элемент появляется в неправильном месте во втором контейнере

Как я могу с этим справиться?

Теги:
drag-and-drop

2 ответа

0

Html выглядит примерно так:

<div id="designer">  
   <div class="ui-layout-center">
     <div id="workspace"></div>
   </div>

   <div class="ui-layout-north">
     content
   </div>

   <div class="ui-layout-west">
     <div class="elements">
        <div class="element"></div>
        <div class="element"></div>
     </div>
   </div>
</div>

CSS

#workspace {
   position:relative;
}
.work-element { /*class for dropped element*/
  position:absolute;
}

JS

$('.elements .element').draggable({
    helper: copyElementHelper
});

$("#workspace").droppable({
    accept: '.element',
    drop: onWorkspaceDrop
});

function copyElementHelper(event) {
    var $element = $('<div></div>');

    return $element.appendTo('body').css('zIndex', 5).show();
};

function onWorkspaceDrop(event, ui) {
    // logic for adding element to workspace
    // create element
    // add class work-element to created element
    // set positions for created element using ui param
    // here I have position relative to body
    // how to transform it to be position relative to workspace
};
0

Возможно, вы захотите включить более релевантную информацию. Возможно ли перемещаемый элемент: позиция? В этом случае обязательно укажите позицию контейнера: относительную, чтобы она привязывалась к ней родительской.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню