我正在使用dragBoundFunc限制拖动移动,但是在一定距离下我想取消拖动,其目的是当用户尝试移动到远处时对象会自动掉落。
我尝试使用event.preventDefault()
,但不起作用。
我该如何实现?
var image1 = new Konva.Image({
image: imageObj,
x: limit.left,
y: limit.top,
width: gBoxSize ,
height: gBoxSize ,
name: 'gameobj',
draggable: true,
dragBoundFunc: function(pos,event) {
var newPos = {x: pos.x, y: pos.y};
// if newPos exceeds 200px I want force to cancel the drag
if(Math.abs(prevPos.x - newPos.x) > 200){
// ?
}
if(newPos.x <= limit.left){
newPos.x = limit.left;
}else if(newPos.x >= limit.right){
newPos.x = limit.right;
}
if(newPos.y <= limit.top){
newPos.y = limit.top;
}else if(newPos.y >= limit.bottom){
newPos.y = limit.bottom;
}
// do some stuffs
return newPos;
}
});
答案 0 :(得分:0)
在这种情况下,您可以使用node.stopDrag()
方法:
if(Math.abs(prevPos.x - newPos.x) > 200){
image1.stopDrag();
}
但是最好使用dragmove
事件来检查该条件并停止对其进行拖动。