首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FabricJS -禁用平移视图端口-x -y轴

FabricJS -禁用平移视图端口-x -y轴
EN

Stack Overflow用户
提问于 2017-02-27 10:58:37
回答 1查看 804关注 0票数 3

如果鼠标离开画布,鼠标在-x -y轴上移动,我要禁用pan。如何禁用视点-x -y轴。

这是我的密码。

代码语言:javascript
复制
var panning = false;
canvas.on('mouse:up', function (e) {
    if (isPaningMode) {
        panning = false;
    }
});
canvas.on('mouse:out', function (e) {
    if (isPaningMode) {
        panning = false;
    }
});
canvas.on('mouse:down', function (e) {
    if (isPaningMode) {
        panning = true;
    }
});

canvas.on('mouse:move', function (e) {
    canvas.selection = !isPaningMode;
    if (isPaningMode && e && e.e && panning) {
        var units = 10;
        var delta = new fabric.Point(e.e.movementX, e.e.movementY);
        canvas.relativePan(delta);
    }
});

谢谢,对不起,我英语说不好。:(

编辑

我的帆布尺寸是: 800x800,我只想使用红色条纹区域。我不想在X中使用部分,我不希望通过在这些字段中滚动来显示它们。我按我说的去做了。但我不能因为洗衣而这么做。总之,我只想在箭头的方向上摇身。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 15:39:02

确保您使用的是最新版本的FabricJS,他们正在不断改进它。我注意到,在过去,canvas.on('mouse:out')是针对对象,而不是画布。

这是一个工作的JSFiddle,https://jsfiddle.net/rekrah/bvgLvd3u/

我想这就是问题所在,因为你已经禁用了鼠标移出画布的功能。

代码语言:javascript
复制
canvas.on('mouse:out', function(e) {
  if (isPaningMode) {
    panning = false;
  }
});

让我知道,如果我错过了你的英语-这是非常好,顺便说一句!

编辑后的

大部分更改在鼠标移动事件中。总之:跟踪移动的距离,以便我们知道我们从哪里开始,回到(如果需要的话,调整一下)-希望这是有意义的?

代码语言:javascript
复制
var deltaX = 0;
var deltaY = 0;
canvas.on('mouse:move', function(e) {
  if (isPaningMode && e && e.e && panning) {
    moveX = e.e.movementX;
    if (deltaX >= 0) {
      deltaX -= moveX;
      if (deltaX < 0) {
        moveX = deltaX + moveX;
        deltaX = 0;
      }
    }
    moveY = e.e.movementY;
    if (deltaY >= 0) {
      deltaY -= moveY;
      if (deltaY < 0) {
        moveY = deltaY + moveY;
        deltaY = 0;
      }
    }
    if (deltaX >= 0 && deltaY >= 0) {
      canvas.relativePan(new fabric.Point(moveX, moveY));
    }
  }
});

下面是一个新的、更新的和工作的:) JSFiddle,https://jsfiddle.net/rekrah/r3gm3uh9/

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

https://stackoverflow.com/questions/42484028

复制
相关文章

相似问题

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