0

我正在使用嵌套的 sortables 来创建 UI 编辑器。我猜基本上类似于portlet。用户拿起小部件或小部件支架并可以在屏幕上移动它们,然后保存。他们真的很神经质,不喜欢粘在某些地方。似乎他们更喜欢自上而下地被拖。我尝试向支架和小部件添加填充,但似乎并没有让它变得更好。有谁知道使这种废话更准确的真正好方法?我已经尝试了几乎所有我能找到的东西......我理解这个问题(大部分),我只是想不出一个解决办法。一个问题是当它捕捉到一个点时,某些东西会移动,有时会发生什么移动会使布局发生巨大变化,并且占位符来回跳跃以试图解决。我不明白为什么我不能

  $(".widget_holder").sortable({
        distance: 30,
        revert: true,
        items: ".widget",
        opacity: .8,
        scroll: true, 
        scrollSensitivity: 100, 
        scrollSpeed: 100,
        handle: ".move_widget",
        dropOnEmpty: true,
        tolerance: "pointer",
        cursorAt: { top:0, left: 0 },
        start: function(e, ui){
        $(".widget_holder", ui.item).hide();
        $('.widget').addClass("drag_padding");
        $(".widget_holder" ).addClass("holder_hover").addClass("drag_padding").sortable("refresh");
        },
        update: function(e, ui){
        if(this === ui.item.parent()[0]) {
        updateByHolder();
        }
        },
        stop: function(e, ui){
        $(".widget_holder", ui.item).show();
        $('.widget').removeClass("drag_padding");
        $(".widget_holder" ).removeClass("holder_hover").removeClass("drag_padding");
        }
   }).sortable(
       "option", "connectWith", '.widget_holder' 
    );
4

2 回答 2

1

尝试摆脱tolerance: "pointer",它或将其替换为tolerance: "intersect",

拥有pointer,因为这些tolerance选项会使整个列表非常跳跃!

于 2013-03-13T21:31:43.803 回答
1

overflow: auto;父级(ul、#element_id 等)呢?

于 2017-05-08T18:32:08.853 回答