0

我正在实现 JQuery UI Draggable() 对象并添加了 cursorAt() 对象。然后我注意到我需要将可拖动对象居中,但不知道如何。我可以将顶部和左侧设置为 0,但我想将框(可拖动对象)居中。那么如何获取可拖动对象的宽高呢?

$('#gridColumn1').draggable({
    appendTo: 'body', 
    helper: 'clone', 
    start: function(e, ui) { ui.helper.addClass("dragEffect"); }, 
    //cursorAt: { top: 0, left: 0 }
    cursorAt: top: Math.floor(??? / 2), left: Math.floor(??? / 2)
});
4

1 回答 1

1

我能得到的最接近的是在初始化时设置光标偏移量,这依赖于所有可拖动类型相同。它似乎不cursorAt接受一个函数。

http://jsfiddle.net/kFjJY/2/

var $dragitem = $("#gridColumn1");
$dragitem.draggable({
    appendTo: 'body', 
    helper: 'clone',
    start: function(e, ui) { ui.helper.addClass("dragEffect"); }, 
    cursorAt: { top: $dragitem.height()/2, left: $dragitem.width()/2 }
});

我注意到的一个问题是,当使用像 ( #gridColumn1) 这样的 ID 选择器时,克隆会失去其样式,因此请确保您使用类选择器而不是 id 进行样式设置。

于 2013-06-06T23:55:32.210 回答