我需要在相当复杂的几何形状中使用jQuery draggable,并且不可能事先计算帧。
因此,解决此问题不会削减包含选项。
我一直在考虑拖动功能,检查我的状况并返回false以防止拖动。 但是,问题是,在第一次从拖拽功能返回false后,拖拽过程停止,就好像用户已经释放鼠标按钮一样。
有关防止在不取消拖动过程的情况下拖出形状的建议吗?
答案 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 } );
});
你可以分别分析左边和上边但是你有了想法