Jquery ui 在jQueryUI可排序元素上拖动而不滚动

Jquery ui 在jQueryUI可排序元素上拖动而不滚动,jquery-ui,jquery-ui-sortable,Jquery Ui,Jquery Ui Sortable,如果我有一个具有可排序元素的固定高度div,并且如果我将其拖动到下面的列表中,该div将滚动。我想我可以设置overflow:hidden,它隐藏滚动条,但仍然滚动div 用这把小提琴更容易描述: 如果我尝试将A1拖到B1下,div将滚动,这可能会让用户感到沮丧。我该如何防止这种行为 <div id="items"> <ul class="sort"> <li>Item A1</li> <li>I

如果我有一个具有可排序元素的固定高度div,并且如果我将其拖动到下面的列表中,该div将滚动。我想我可以设置overflow:hidden,它隐藏滚动条,但仍然滚动div

用这把小提琴更容易描述:

如果我尝试将A1拖到B1下,div将滚动,这可能会让用户感到沮丧。我该如何防止这种行为

<div id="items">
    <ul class="sort">
        <li>Item A1</li>
        <li>Item A2</li>
        <li>Item A3</li>
        <li>Item A4</li>
        <li>Item A5</li>
        <li>Item A6</li>
        <li>Item A7</li>
        <li>Item A8</li>
        <li>Item A9</li>
        <li>Item A10</li>
    </ul>
</div>
<ul class="sort">
    <li>Item B1</li>
    <li>Item B2</li>
    <li>Item B3</li>
    <li>Item B4</li>
    <li>Item B5</li>
</ul>

<script>
$(function() {
    $('.sort').sortable({
        connectWith: '.sort',
        start: function() {
            $('#items').css({
                overflow: 'hidden'
            });
        },
        stop: function() {
            $('#items').css({
                overflow: 'auto'
            });
        }
    });
});
</script>

  • 项目A1
  • 项目A2
  • 项目A3
  • 项目A4
  • 项目A5
  • 项目A6
  • 项目A7
  • 项目A8
  • 项目A9
  • 项目A10
  • 项目B1
  • 项目B2
  • 项目B3
  • 项目B4
  • 项目B5
$(函数(){ $('.sort')。可排序({ 连接方式:'.sort', 开始:函数(){ $('#items').css({ 溢出:“隐藏” }); }, 停止:函数(){ $('#items').css({ 溢出:“自动” }); } }); });
好吧,不知何故,我忽略了显而易见的“滚动”选项 我只需要将scroll设置为false


您是否需要
#项。排序
以进行排序,或者它只是将要到其他列表的可拖动内容的来源?是的,在我的情况下也需要进行排序,这是可以的,但我在使用滚动选项时发现了很多错误,这会导致其他连接的列表无法正常工作。甚至小提琴似乎也不能正常工作。例如,如果您尝试将A1拖动到B1下方。我一定是忽略了这一点。无论哪种方式,scroll都可以依赖于buggy。@ActionOwl:我在JSFIDLE中查看了您的示例。垂直滚动条完全消失了。但是,当我尝试拖动元素时,仍然可以看到屏幕底部的水平滚动条。如何在不将容器(页面本身)的“溢出”属性设置为隐藏的情况下删除该属性?@Ishita,您可以将列表包装在容器中,并使用“包含”选项防止元素被拖动,从而获得水平滚动条。这是小提琴。