更新时间:2023-02-01 23:03:54
好的,我已经找到了想要的东西!
ok, I've found what I was looking for!
在此链接中是我需要的代码
代码是这样的:
//内部拖动:功能(事件,用户界面)
//inside drag: function(event, ui)
var offset = $(this).parent().offset();
var GRID_SPACING = 10;
var SELECTION_OFFSET_X = 10;
var SELECTION_OFFSET_Y = 3;
if (parseInt(event.clientX / GRID_SPACING) % 2 == 0)
{
var row = Math.floor((event.clientY - offset.top) / GRID_SPACING) + Math.floor(event.clientX / (2 * GRID_SPACING));
var col = -Math.floor((event.clientY - offset.top) / GRID_SPACING) + Math.floor((event.clientX + GRID_SPACING) / (2 * GRID_SPACING));
}
else
{
var row = Math.floor((event.clientY + GRID_SPACING / 2 - offset.top) / GRID_SPACING) + Math.floor(event.clientX / (2 * GRID_SPACING));
var col = -Math.floor((event.clientY + GRID_SPACING / 2 - offset.top) / GRID_SPACING) + Math.floor((event.clientX + GRID_SPACING) / (2 * GRID_SPACING));
}
var new_x = row * GRID_SPACING + col * GRID_SPACING - SELECTION_OFFSET_X;
var new_y = (row * (GRID_SPACING / 2)) - (col * (GRID_SPACING / 2));
if(event.clientX == new_x + GRID_SPACING * 2)
{
ui.position.left = new_x;
new_x = event.clientX;
}
if(event.clientY == new_y + GRID_SPACING)
{
ui.position.top = new_y;
new_y = event.clientY;
}
ui.position.left = new_x;
ui.position.top = new_y;
我更改了一些常量以适应我的网格...
I changed some of the constants to adjust to my grid...