我正在寻找一个javascript函数,它使用均匀间隔的网格计算对齐网格值。
现在我有以下代码,它可以作为基本解决方案正常工作,但是现在我需要它才能在快照位置的2px内进行捕捉,例如使用30px间隔网格和2px限制,它将在0px和2px,28px和32px,58px和62px等之间捕捉。
snapToGrip = function(val,gridSize){
return gridSize * Math.round(val/gridSize);
};
非常感谢
答案 0 :(得分:8)
您是否考虑过使用jquery UI? The draggable utility允许捕捉。
如果确实需要实现它,则返回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;
}
};