您可以设置containment:'document'
可拖动并使用appendTo:'body'
它应该停止出现滚动条。例如:
$(".item").draggable({
helper: 'clone',
appendTo: 'body',
cursor: 'move',
containment:'document'
});
出现问题是因为绝对定位的容器正在创建新的、单独的堆叠上下文,并且可拖动对象被附加到具有较低堆叠顺序的东西上。
编辑:替代解决方案 - jsFiddle 演示
如果您真的想在contentpane上保留滚动条,我能想到的唯一解决方案是必须更改标记以将导航窗格移动到contentpane内,以便它们共享相同的堆叠上下文。所以我不得不牺牲一些语义结构来保持滚动条在contentpane上。另一个问题是滚动条会在我使用时在导航窗格下消失。我认为这比看到整个窗口底部的滚动要好。position:fixed
HTML
<div id="contentpane">
<div id="navpane">
<div class="item">Item A</div>
<div class="item">Item B</div>
<div class="item">Item C</div>
<div class="item">Item D</div>
</div>
</div>
CSS
.item {
border: 1px solid black;
width:200px;
margin-top: 5px;
}
#navpane {
background-color:lightblue;
width:250px;
position:fixed;
top:0;
bottom:0;
left:0;
}
#contentpane {
background-color:lightgreen;
position:absolute;
top:0;
right:0;
bottom:0;
left:0;
overflow-x:auto;
overflow-y:hidden;
}
JavaScript
$(function () {
$('.item').draggable({
helper: 'clone',
appendTo: '#contentpane',
cursor: 'move'
});
});