:http://jqueryui.com/demos/draggable/#snap-to
kinetic.js: は、どのように私は私のkinetic.js画像ドラッグ
jQueryを使ってこれを使用することができますnxmグリッドにスナップするものは、スナップする関数を呼び出すリスナーを追加したいと思うでしょう。おそらく、元
function snaptogrid(YourObject){
YourObject.x = Math.floor(YourObject.x/100) * 100 + 50;
YourObject.y = Math.floor(YourObject.y/100) * 100 + 50;
}
広場のタイルのために100×100グリッド... "dragendイベント"
http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-events-tutorial/
box.on("dragend", function(){
snaptogrid(box);
});
でこれをしたいと思います:YourObject.x = 325、そしてあなたならばMath.floor(3.25)* 100 + 50 = 350です。左と上の両方が300で、中央が350である必要があります。
編集、oopsは質問の一部を見逃しました。他の正方形にスナップするために、ここで私がやるだろうと何:
function snaptoOther(YourSquares, index){
var lastone = YourSquares.length-1;
var maxDist = 125;
var minDist = 75;
var squarelength = 100;
for(var i=0; i<lastone; i++)
{
var checkx = abs(YourSquares[index].x - YourSquares[i].x);
var checky = abs(YourSquares[index].y - YourSquares[i].y);
var multiplyX = Math.round((YourSquares[index].x - YourSquares[i].x)/squarelength);
var multiplyY = Math.round((YourSquares[index].y - YourSquares[i].y)/squarelength);
if(checkx < maxDist && checkx > minDist && i !== index)
{
YourSquares[index].x = YourSquares[i].x + multiplyX*squarelength;
}
if(checky < maxDist && checky > minDist && i !== index)
{
YourSquares[index].y = YourSquares[i].y + multiplyY*squarelength;
}
}
}
ありがとうございます,,,確かに試してみましょう – ashishashen
ありがとうございました。助けを求めて...それを忘れました。:) – ashishashen
喜んで聞いてください。私はKineticJSの大きな支持者であり、あなたがそれを使用しているのを見てうれしいです。あなたの創造を共有するためにKineticJSフォーラムに投稿することをお勧めします。 – randompast