看起来,#sortable
内的右浮动会干扰 jquery-ui-sortable
的行为。
为了保持您的倒序(3,2,1)并将其对齐到右侧,并保持所需的功能按您描述的方式工作:
html:
<div class="example-box">
<ul id="sortable">
<li class="ui-state-default">1</li>
<li class="ui-state-default">2</li>
<li class="ui-state-default">3</li>
</ul>
</div>
CSS:
.example-box {
margin: 50px;
border: 1px solid navy;
float: right;
}
#sortable {
list-style-type: none;
margin: 0;
padding: 0;
}
#sortable li {
margin: 3px 3px 3px 0;
padding: 1px;
width: 120px;
height: 120px;
font-size: 4em;
text-align: center;
float: left;
}
#sortable li {}
.draggable-placeholder {
border: 2px dashed #D9D9D9 !important;
background-color: #F7F7F7 !important;
}
jQuery:
jQuery(function($) {
$('#sortable').sortable({
opacity: 0.8,
revert: true,
forceHelperSize: true,
forcePlaceholderSize: true,
placeholder: 'draggable-placeholder',
tolerance: 'pointer',
axis: 'x'
});
var list = $('ul#sortable');
var listItems = list.children('#sortable>li');
list.append(listItems.get().reverse());
});
这里有一个可用的jsfiddle:https://jsfiddle.net/n7b9wezj/3/
注意:我设置了axis:x
,因为它可以更好地展示功能,但您不需要设置它。蓝色边框仅用于说明div的位置...
根据评论进行编辑
这是另一个使用flexbox的示例:https://jsfiddle.net/y9qd08bn/1/
我将宽度设置为90%,这样在fiddle中看起来更好,但您也可以使用100%。