Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI可排序移动滚动_Javascript_Jquery_Jquery Ui_Scroll_Jquery Ui Sortable - Fatal编程技术网

Javascript UI可排序移动滚动

Javascript UI可排序移动滚动,javascript,jquery,jquery-ui,scroll,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Scroll,Jquery Ui Sortable,我对jquerysortable有异议 下面是一个活生生的例子: HTML: CSS: 在本例中,我使用了带滚动的div。我滚动到div的末尾,并尝试使用拖放对元素进行排序。执行此操作后,在div中滚动跳转到此div的开头。如何“记住”滚动的位置并在可排序后“还原”它?您需要保存滚动位置,然后在停止移动对象时重新应用它 JSFIDDLE: 您需要保存滚动位置,然后在停止移动对象时重新应用它 JSFIDDLE: 您应该使用内部上的sortable()方法,将要排序的每个元素放入标记中,以便将它们视

我对jquerysortable有异议

下面是一个活生生的例子:

HTML:

CSS:


在本例中,我使用了带滚动的div。我滚动到div的末尾,并尝试使用拖放对元素进行排序。执行此操作后,在div中滚动跳转到此div的开头。如何“记住”滚动的位置并在可排序后“还原”它?

您需要保存滚动位置,然后在停止移动对象时重新应用它

JSFIDDLE:


您需要保存滚动位置,然后在停止移动对象时重新应用它

JSFIDDLE:


您应该使用内部
上的
sortable()
方法,将要排序的每个元素放入
标记中,以便将它们视为DOM元素。 这里有一个有效的解决方案
您可能需要检查主题。

您应该在内部
上使用
sortable()
方法,并将要排序的每个元素放入
标记中,以便将它们视为DOM元素。 这里有一个有效的解决方案
您可能需要检查主题。

它移动所有层,而不仅仅是元素。你确定小提琴再现了你的问题吗?如果是,请添加更多详细信息或更好地解释您需要什么,因为它很难看到。实际上,您需要使用scrollbox(使用类“b”)再添加一个内部div。它移动所有层,而不仅仅是元素。你确定小提琴再现了你的问题吗?如果是,请添加更多详细信息或更好地解释您需要什么,因为它很难看到。实际上,您需要使用scrollbox(类为“b”)添加一个更多的内部div
<div class="a">
  <div class="b">
    a<br>
    b<br>
    c<br>
    d<br>
    e<br>
    f<br>
    g<br>
    h<br>
    i<br>
    j<br>
    k<br>
    l<br>
    m<br>
    n<br>
    o<br>
  </div>
</div>
$(function(){
    $('.a').sortable();
});
.b {
  border: 1px solid;
  width: 100px;
  height: 100px;
  overflow-y: scroll;
  overflow-x: hidden;
  text-align: center;
}
$(function(){
    var scrollTop = 0;
    $('.a').sortable({
        start: function(event, ui){
          scrollTop = ui.item.scrollTop();
        },
        stop: function(event, ui){
          ui.item.scrollTop(scrollTop);
        }
    });
});