我正在寻找一个JavaScript函数,该函数使用均匀间隔的网格来计算网格值的对齐方式。

现在我有以下代码,可以很好地用作基本解决方案,但是现在我只需要在对齐位置的2px之内才能进行对齐。使用30px的间距网格和2px的限制,它将在0px和2px,28px和32px,58px和62px等之间捕捉。

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

非常感谢

最佳答案

您是否考虑过使用jQuery UI? The draggable utility允许捕捉。

如果您确实需要实现它,则在以下情况下返回null
你不应该snap。

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;
    }
};

关于javascript - 捕捉到JavaScript中的网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6593447/

10-12 00:49