2011-06-13 8 views
0

프로토 타입을 사용하여 개체를 이동할 때마다 X와 Y를 20 픽셀 씩 늘리려고합니다. 난 단지 20 픽셀 만에 처음으로 증가 할 수JavaScript 프로토 타입 draggable

new Draggable('element', { 
    snap: function(x, y, draggable) { 
     function constrain(n, lower, upper) { 
     if (n > upper) return upper; 
     else if (n < lower) return lower; 
     else return n; 
     } 
     var element = draggable.element.getDimensions(); 
     var parent = draggable.element.parentNode.getDimensions(); 
     return [ 
     constrain((x + 20), 0, parent.width - element.width), 
     constrain((y + 20), 0, parent.height - element.height) 
     ]; 
    } 
}); 

: 그러나, 내가 함께 요소의 부모 노드로 끌어 제한 할뿐만 아니라 필요

new Draggable('element', {snap:[20, 20]}); 

그것은 작동합니다 : 내가 좋아하는 뭔가를 할 수 이동했지만 1px 단위로 증가합니다. 감사합니다

답변

2
return [ 
    constrain(Math.round(x/20)*20, 0, parent.width - element.width), 
    constrain(Math.round(y/20)*20, 0, parent.height - element.height) 
]; 
+0

정확히 내가 뭘 찾고 있었는지 ... 감사합니다! –