在 jquery-ui 可拖动方法中使 ui.helper 的光标位置在中心

Make Cursor position in center for ui.helper in jquery-ui draggable method

我希望 cursor 位于 center for ui.helper of draggable .

我就是这样做的

$(".soclass").draggable({

          cursor: "move",
          helper: 'clone',
          revert: "invalid",
          tolerance: "fit",
          start: function(event, ui){

             $(this).draggable("option", "cursorAt", {
            left: Math.floor(ui.helper.width() / 2),
            top: Math.floor(ui.helper.height() / 2)
          }); 


          }

      });

Using this i get cursor in the center only after First drop. How can I center align the cursor right from first drop.

Jsfiddle

您可以访问可拖动实例的 offset.click 属性,这几乎就是将光标设置为选项的原因设置选项,正如您所描述的那样,它只会在您下次触发 start 事件时应用。但是使用 属性 你可以在当前事件上设置它。像这样:

start: function(event, ui){
    $(this).draggable('instance').offset.click = {
        left: Math.floor(ui.helper.width() / 2),
        top: Math.floor(ui.helper.height() / 2)
    }; 
}

https://jsfiddle.net/38fay00b/

我创建了这个解决方案,它只对我有用

$('.soclass').mouseenter(function(){
    $(this).draggable("option", "cursorAt", {top: 0, left: $(this).width()/2 });
});