在删除后将div移出包含可拖动的屏幕并保持拖动的元素位置

时间:2013-05-14 01:33:17

标签: jquery jquery-ui jquery-ui-draggable

我正在使用JQuery拖放。我想将包含可拖动元素('elements')的div移出屏幕,并在拖放后将可拖动元素放在相应的插槽上。

现在当所有可拖动的都在他们的插槽中时,我通过添加一个类来移动包含插槽的div,然后设置draggables的位置以匹配插槽:

$("#slots").addClass('left');
$( "#element1" ).position({my: "left top",at: "left top",of: "#slot_1"});
$( "#element2" ).position({my: "left top",at: "left top",of: "#slot_2"});
etc

完成此操作后,我会在拖动的元素上方显示视频,并在div“元素”上方显示。问题是div'元素'仍然占用空间......所以我想把它移出屏幕。我已尝试使用绝对定位执行此操作,但随后拖动的元素不会设置到其插槽中,它们会显示在插槽正上方的视频上方。

我也尝试将类'left'更改为div'slots'添加到:

#slots.left {
position:absolute;
top:400px;
left:30px;
}

但是这导致拖动的元素没有定位在插槽上,尽管使用:

$("#slots").addClass('left');
$( "#element1" ).position({my: "left top",at: "left top",of: "#slot_1"});
$( "#element2" ).position({my: "left top",at: "left top",of: "#slot_2"});
etc

基本上我只想减少视频和被拖动元素之间的垂直空间,方法是使用元素div来占用空间......

请参阅http://jsfiddle.net/4pBWT/

小提琴

1 个答案:

答案 0 :(得分:1)

在显示视频之前,您可以尝试隐藏包含已拖动元素的父div:

$('#elements').hide();

Updated Fiddle


您可以尝试调整margin-top div的#drag_drop

$('#drag_drop').css('margin-top', '-70px');

<强> Updated Fiddle