Jquery ui jQuery拖动时可拖动捕捉到中心

Jquery ui jQuery拖动时可拖动捕捉到中心,jquery-ui,draggable,Jquery Ui,Draggable,我在页面中有一个可拖动的对象,它具有区域的捕捉设置 <div class="drag-bound"> <div id="obj"></div> </div> $('#obj').draggable({ snap: ".drag-bound", snapTolerance: 5 }) $('#obj')。可拖动({ 捕捉:“.拖动绑定”, 耐折度:5 }) 因此,现在如果将$(“#obj”)拖动到的边界附近。拖动绑定“,它会在那里

我在页面中有一个可拖动的对象,它具有区域的捕捉设置

<div class="drag-bound">
  <div id="obj"></div>
</div>

$('#obj').draggable({
  snap: ".drag-bound",
  snapTolerance: 5
})

$('#obj')。可拖动({
捕捉:“.拖动绑定”,
耐折度:5
})
因此,现在如果将
$(“#obj”)
拖动到
的边界附近。拖动绑定“
,它会在那里被捕捉

问题是我希望
$(“#obj”)将
捕捉到
的中心。拖动绑定“

有什么好办法让它发生吗

我是否应该在
拖动事件处理程序中生成自定义代码


这里面有什么好的和简单的选择吗?

好吧,从我的调查来看,似乎没有一个好的选择来实现我的目的

我在drag事件处理程序中创建了如下自定义代码:

       fn.branding.$resizable.draggable({

          snap: ".resize-bound",
          snapTolerance: 5,

          drag: function(event, ui) {

            var ui_w = ui.helper.width();
            var ui_h = ui.helper.height();
            var margin = $(this).draggable("option", "snapTolerance");

            /////////////////////////////////////////////////////////
            // do custom snapping here
            //
            if (!(Math.abs((ui.position.left + (ui_w)/2) - (fn.branding.modal_preview_width/2)) > 2 * margin)) {
              ui.position.left = Math.round((fn.branding.modal_preview_width - ui_w)/2);
            }

            if (!(Math.abs((ui.position.top + (ui_h)/2) - (fn.branding.modal_preview_height/2)) > 2 * margin)) {
              ui.position.top = Math.round((fn.branding.modal_preview_height - ui_h)/2);
            }

          });

好吧,从我的调查来看,似乎没有一个好的选择来实现我的目的

我在drag事件处理程序中创建了如下自定义代码:

       fn.branding.$resizable.draggable({

          snap: ".resize-bound",
          snapTolerance: 5,

          drag: function(event, ui) {

            var ui_w = ui.helper.width();
            var ui_h = ui.helper.height();
            var margin = $(this).draggable("option", "snapTolerance");

            /////////////////////////////////////////////////////////
            // do custom snapping here
            //
            if (!(Math.abs((ui.position.left + (ui_w)/2) - (fn.branding.modal_preview_width/2)) > 2 * margin)) {
              ui.position.left = Math.round((fn.branding.modal_preview_width - ui_w)/2);
            }

            if (!(Math.abs((ui.position.top + (ui_h)/2) - (fn.branding.modal_preview_height/2)) > 2 * margin)) {
              ui.position.top = Math.round((fn.branding.modal_preview_height - ui_h)/2);
            }

          });

这正是我正在努力实现的目标。但是,我不确定fn.branding.modal_preview_高度是多少。你能提供html吗。我假设fn.branding是某个正在被拖动和调整大小的html元素,但是模态预览高度让我很反感。谢谢这正是我想要完成的。但是,我不确定fn.branding.modal_preview_高度是多少。你能提供html吗。我假设fn.branding是某个正在被拖动和调整大小的html元素,但是模态预览高度让我很反感。谢谢