Jquery可拖动约束使用拖动功能

时间:2011-08-29 08:11:54

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

我需要在相当复杂的几何形状中使用jQuery draggable,并且不可能事先计算帧。

因此,解决此问题不会削减包含选项。

我一直在考虑拖动功能,检查我的状况并返回false以防止拖动。 但是,问题是,在第一次从拖拽功能返回false后,拖拽过程停止,就好像用户已经释放鼠标按钮一样。

有关防止在不取消拖动过程的情况下拖出形状的建议吗?

2 个答案:

答案 0 :(得分:2)

主要技巧是在拖动事件函数中设置ui辅助对象的位置。

实施例

这里我假设您有一个根据X位置计算Y限制的功能。

$(x).draggable({
    drag: function (e, ui) {
        ui.position.top = limitY(ui.position.left);
    }
});

这是我在尝试自己解决类似问题时创建的jsFiddle

答案 1 :(得分:1)

我用resizable解决了类似的问题。我不得不手动设置大小。 尝试类似的东西:

yourdraggable.bind( 'drag', function() {

  var left = $(this).css('left'),
      top = $(this).css('top'),
      width = $(this).width(), 
      height= $(this).height();

  //determine if dragging should contain or continue

  //if contain 
  $(this).css( { left: containLeft, top: containTop } );

});

你可以分别分析左边和上边但是你有了想法