使用原型我每次移动对象时都试图将X和Y增加20px。我可以这样做:
new Draggable('element', {snap:[20, 20]});
它会起作用,但是,我还需要用以下方法限制拖动到元素的父节点:
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)
];
}
});
我只能在第一次移动时增加20px,但随后它会增加1px。感谢
答案 0 :(得分:2)
return [
constrain(Math.round(x/20)*20, 0, parent.width - element.width),
constrain(Math.round(y/20)*20, 0, parent.height - element.height)
];