Пример:
http://jsfiddle.net/sP3UZ/2675/
Как только я начну перетаскивать элемент, следующие немного сдвинутся влево.
Плавающие элементы являются общим решением для горизонтальной сортировки, но мне интересно, есть ли способ остановить перемещение элементов при перетаскивании?
Css:
#draggable1 { background:#ff0000; width: 150px; height: 35px; padding: 0.5em; }
#draggable2 { background:#00ff00; width: 150px; height: 35px; padding: 0.5em; }
#draggable3 { background:#0000ff; width: 150px; height: 35px; padding: 0.5em; }
#sortable { width: 700px; height: 35px; }
#sortable > div { float: left; }
Это связано с тем, что вы используете отступы для каждого перетаскиваемого div (padding: 0.5em;). Вам нужно удалить его и создать для него новый контейнер.
Обработать:
И твой хороший ход =)
Here is an example
: Пример
Вам нужно объявить местозаполнитель и определить его класс в вашем CSS как тот же размер, что и ваши элементы. Код приведен ниже, и здесь для вас есть рабочий jsfiddle: http://jsfiddle.net/sP3UZ/2706/
Также для хорошей меры, вот ссылка на документацию с заполнителем: http://api.jqueryui.com/sortable/#option-placeholder
<div class="demo">
<div id="sortable" class="ui-state-default">
<div id = "draggable1" class="ui-state-default">Home</div>
<div id = "draggable2" class="ui-state-default">Contact Us</div>
<div id = "draggable3" class="ui-state-default">FAQs</div>
</div>
</div>
#draggable1 {
background:#ff0000;
width: 150px;
height: 35px;
padding: 0.5em;
}
#draggable2 {
background:#00ff00;
width: 150px;
height: 35px;
padding: 0.5em;
}
#draggable3 {
background:#0000ff;
width: 150px;
height: 35px;
padding: 0.5em;
}
#sortable {
width: 700px;
height: 35px;
}
#sortable > div {
float: left;
}
.sortable-placeholder {
width: 150px; height: 35px; padding: 0.5em;
}
$("#sortable").sortable({
revert: true,
placeholder: "sortable-placeholder"
});
Удачи!
Лучший,
мистифицировать