2016-10-11 88 views
0

当我将可拖动元素(克隆)拖放到可拖放容器中时,它们从上到下堆叠,是否有反转该方法的方法?我曾尝试向父元素添加一个相对位置,并向可拖动元素添加“位置:绝对;底部:0”,但它不能正常工作,因为它们都保持在完全相同的位置,所以它们不会堆叠在彼此的顶部。将可拖动元素堆叠到可拖放容器中(底部到顶部)

的代码和一个的jsfiddle例如:

https://jsfiddle.net/f3gzrtar/

HTML:

<div class="containtment"> 

    <div class="cube"> 
    </div> 

    <div class ="makeMeDroppable"> 
    </div> 

    </div> <!--containtment--> 

CSS

.containtment { 
    height: 600px; 
    width: 600px; 
    border: 1px solid; 
} 

.cube { 
    width: 100px; 
    height: 100px; 
    background-color: blue; 
    position: relative; 
    display: block; 
    margin: 1%; 
} 

.cube.ui-draggable-dragging { 
    background: green; 
    } 

.draggableHelper { 
    width: 100px; 
    height: 100px; 
    background-color: blue; 
    position: relative; 
    display: block; 
    } 

.makeMeDroppable { 
    float: right; 
    width: 200px; 
    height: 300px; 
    border: 1px solid #999; 
    position: relative; 
    overflow: hidden; 
    } 

JS

$(document).ready(function() { 

$('.cube').draggable({ 
    containment: "parent", 
    cursor: 'move', 
    helper: myHelper, 
}) 

function myHelper() { 
    return '<div class="draggableHelper"></div>'; 
} 

$('.makeMeDroppable').droppable({ 
    drop: handleDropEvent 
}); 

function handleDropEvent(event, ui) { 
    var draggable = ui.draggable; 
$(".makeMeDroppable").append("<div class='cube'></div>") 
    } 
}); 
+0

http://stackoverflow.com/问题/ 18294487/jquery-ui-drag-drop-snap-to-bottom – adeneo

+0

必须有一个更简单的方法。 – Sergi

回答

1

在此基础上answer可以使用display: table-cellvertical-align: bottom从底部叠加的div。请注意,在放置容器上使用float: right意味着这不起作用。您可通过执行需要像this fiddle

另外,您可以使用Flexbox的,如果你不关心的一些旧的浏览器的额外围绕元件:

.makeMeDroppable { 
    display: flex; 
    float: none; 
    width: 200px; 
    height: 300px; 
    border: 1px solid #999; 
    position: relative; 
    overflow: hidden; 
    justify-content: flex-end; 
    flex-direction: column; 
} 

flex fiddle

+0

有趣的是,我只是看着那个答案,但我从来没有想过浮球:正确的是它不起作用的罪魁祸首。有用! – Sergi

相关问题