首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Konvajs取消拖动事件

Konvajs取消拖动事件
EN

Stack Overflow用户
提问于 2019-02-28 20:20:06
回答 1查看 389关注 0票数 0

我使用dragBoundFunc来限制拖动移动,但是在一定的距离内,我想取消拖动,这个想法是当用户试图移动到较远的位置时,对象会自动下降。

我尝试使用event.preventDefault(),但它不起作用。

我怎样才能做到这一点呢?

代码语言:javascript
复制
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;
  }            
});
EN

回答 1

Stack Overflow用户

发布于 2019-03-02 00:22:33

对于这种情况,您可以使用node.stopDrag()方法:

代码语言:javascript
复制
if(Math.abs(prevPos.x - newPos.x) > 200){
  image1.stopDrag();
}

但使用dragmove事件检查该条件并停止从中拖动可能会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54925616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档