我正在使用jQuery创建一组可水平排序的元素,这些元素也可以通过右侧(东)手柄调整大小。问题是,在调整元素大小后,当我移动其水平位置时,在移动过程中元素会跳转到页面顶部。
HTML
<div id="spacer"></div>
<div id="box">
<div id="list">
<div class="resize">ONE</div>
<div class="resize">TWO</div>
<div class="resize">THREE</div>
</div>
</div>
JAVASCRIPT
$(function() {
$('#list').disableSelection().sortable({
scroll: true,
placeholder: 'placeholder',
containment:'parent',
axis: 'x'
});
$('.resize').resizable({
handles: 'e'
});
});
CSS
#spacer {height: 100px}
#box {
height: 40px;
width: 500px;
float: left;
}
#list {
background-color:blue;
white-space:nowrap;
overflow-x:scroll;
overflow-y:hidden;
}
.resize {
background-color:darkgray;
height:40px;
width:100px;
cursor:move;
display:inline-block;
}
.placeholder {
display:inline-block;
height: 1px !important;
}
.ui-resizable-handle {
height:15px;
width: 20px;
background-color:red;
cursor: pointer;
}
我做错了什么? jsFiddle是here。
答案 0 :(得分:1)
从您的代码中删除“axis:x”
更改你的jquery部分如下..
$(function () {
$('#list').sortable({
scroll: true,
placeholder: 'placeholder',
containment: 'parent',
//axis: 'x'
});
$('#list').disableSelection();
$('.resize').resizable({
handles: 'e'
});
});
答案 1 :(得分:0)
如果定义了轴的值,则只能水平或垂直拖动项目。可能的值:“x”,“y”。我不是100%肯定,但在你的情况下,它与调整元素的大小相冲突。
删除轴或尝试
axis: 'xy'