JavaScript原型可拖动
使用prototype,我试图在每次移动对象时将X和Y增加20px。我可以这样做:JavaScript原型可拖动,javascript,prototypejs,Javascript,Prototypejs,使用prototype,我试图在每次移动对象时将X和Y增加20px。我可以这样做: new Draggable('element', {snap:[20, 20]}); 但是,它也会起作用,我还需要使用以下命令约束拖动到元素的父节点: new Draggable('element', { snap: function(x, y, draggable) { function constrain(n, lower, upper) { if (n > upp
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)
];
}
});
newdraggable('element'{
捕捉:功能(x、y、可拖动){
函数约束(n、下、上){
如果(n>上限)返回上限;
否则,如果(n<较低)返回较低值;
否则返回n;
}
var element=draggable.element.getDimensions();
var parent=draggable.element.parentNode.getDimensions();
返回[
约束((x+20),0,parent.width-element.width),
约束((y+20),0,parent.height-element.height)
];
}
});
我只能在第一次移动时增加20px,但之后会增加1px。谢谢
return [
constrain(Math.round(x/20)*20, 0, parent.width - element.width),
constrain(Math.round(y/20)*20, 0, parent.height - element.height)
];