JQuery UI可拖动不会超出某些点滚动水平

时间:2016-03-18 17:37:36

标签: javascript css jquery-ui jquery-ui-draggable jquery-ui-droppable

function init_gearbrowser_draggables() {
    $("#gearbrowser_product_list div.product").draggable({
      start: function() {
        counts[0]++;
      },
      containment: '#sandbox_space',
      refreshPositions: true,
      helper: 'clone',
      appendTo: '#sandbox_space',
      zIndex: 12,
      delay: 200,
      scroll: false,
      scope: "sandbox_items",
      stop: function(event, ui) {
        sb_index_items();
      }

    });
  } // init_gearbrowser_draggables

// define drop space
  $('#dragspace').droppable({
    scope: "sandbox_items",
    accept: "div.product",
    tolerance: "fit",
    drop: function(event, ui) { //on drop
      //    alert("dropped");
      ui.draggable.attr("id", "sb_item");

      item_pos_top = ui.position.top;
      item_pos_left = ui.position.left;
      ui.draggable.css("top", item_pos_top);
      ui.draggable.css("left", item_pos_left);
      ui.draggable.detach().appendTo($(this));
    }
  });

大家好,

我在JQuery UI draggable / droppable设置中面临一个(可能相当简单的)故障。

以下小提琴显示:

  • 新的可拖动div(狗)的左侧菜单,背景可放置区域 以

  • 现有的可拖动项目(红色方块)

  • 大小为3000 x 2000,它的父级设置为溢出:auto;
    • DOM id:#sandbox_space
    • 确实滚动
    • 有一个海滩背景,可以在滚动时更好地指示位置

问题:

将狗拖到 到可放置的#dragspace(#sandbox_space.ul)工作正常 我们首先向右滚动到大约75%。

将狗向右拖动将导致击中“边缘”。 所以不可能将狗拖过那一点。 尝试通过向右滚动100%来做到这一点,导致狗 放在最左边。

.draggable()中的

“遏制”“appendTo”选项 为狗设置为#sandbox空间,这是完整的3000 x 2000 px。

仅当水平滚动超过75%时才会发生这种情况。 垂直滚动不会发生这种情况。

我知道这是draggable / dropppable选项的问题 在JS或一个相当愚蠢的CSS问题,我现在无法弄清楚。

您的提示非常感谢。 非常感谢!

https://jsfiddle.net/60evfLdh/12/

0 个答案:

没有答案