Следующий код будет соответствовать вашим требованиям.Вам нужно stack
ваш divs
вместо установки z-indexes
, а во-вторых, вам нужно показать div сверху, просто щелкнув по нему, не перетаскивая его.
Так что для суммирования вам нужно stack: "div"
, а для отображения элемента div сверху просто щелкните, вам нужно использовать distance: 0
.
. По умолчанию это значение distance: 10
, котороеозначает, что пока вы не перетащите его 10 pixels
, он не будет отображаться наверху.Если установить значение distance: 0
, оно будет отображаться вверху после простого щелчка.
Попробуйте следующий код.
$('#box1,#box2,#box3,#box4').draggable({
stack: "div",
distance: 0
});
Working JSFiddle Here.
Редактировать:
Нажмите кнопку Фрагмент кода запуска ниже, чтобы выполнить этот фрагмент встроенного кода.
$(document).ready(function() {
$('#box1,#box2,#box3,#box4').draggable({
stack: "div",
distance: 0
});
$('#dragZone div').click(function() {
$(this).addClass('top').removeClass('bottom');
$(this).siblings().removeClass('top').addClass('bottom');
});
});
#box1 {
width: 150px;
height: 150px;
background-color: red;
position: absolute;
top: 0px;
left: 0px;
z-index: 0
}
#box2 {
width: 150px;
height: 150px;
background-color: green;
position: absolute;
top: 20px;
left: 50px;
z-index: 0
}
#box3 {
width: 150px;
height: 150px;
background-color: yellow;
position: absolute;
top: 50px;
left: 100px;
z-index: 0
}
#box4 {
width: 150px;
height: 150px;
background-color: blue;
position: absolute;
top: 70px;
left: 200px;
z-index: 0
}
.top {
z-index: 100!important;
position: relative
}
.bottom {
z-index: 10!important;
position: relative
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div id="dragZone">
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<div id="box4"></div>
</div>