3

我正在寻找一个 javascript 函数,它使用均匀间隔的网格计算对齐网格值。

现在我有以下代码,它作为一个基本解决方案可以正常工作,但现在我需要它仅在捕捉位置的 2px 内进行捕捉,例如使用 30px 间隔网格和 2px 限制,它会在 0px 和 2px 之间捕捉, 28px 和 32px、58px 和 62px 等。

snapToGrip = function(val,gridSize){
    return gridSize * Math.round(val/gridSize);
};

非常感谢

4

1 回答 1

14

您是否考虑过使用 jquery UI?可拖动实用程序允许捕捉。

如果你真的需要实现它,当你不应该捕捉时,它会返回 null。

snapToGrip = function(val,gridSize){
    var snap_candidate = gridSize * Math.floor(val/gridSize);
    if (val-snap_candidate < 2) {
        return snap_candidate;
    }
    else {
        return null;
    }
};

在两侧捕捉:

snapToGrip = function(val,gridSize){
    var snap_candidate = gridSize * Math.round(val/gridSize);
    if (Math.abs(val-snap_candidate) < 2) {
        return snap_candidate;
    }
    else {
        return null;
    }
};
于 2011-07-06T08:23:10.230 回答