javascript - 如何使用 paperjs 滚动 Canvas ?

标签 javascript canvas paperjs

我无法滚动 Canvas 并水平移动整张纸 垂直。

可能吗?

<script type="text/javascript" src="~/Scripts/PaperJS/paper-full.js"></script>

<script type="text/javascript" src="~/Scripts/PaperJS/paper-core.js"></script>

<script>
  $(document).ready(function () {
      var canvas = document.getElementById('odbCanvas');
      paper.setup(canvas);
      var path = new paper.Path();
      path.strokeColor = 'white';
      var start = new paper.Point(100, 100);
      path.moveTo(start);

      path.lineTo(start.add(0,40));
      path.lineTo(start.add(40,40));
      path.lineTo(start.add(40,0));
      path.lineTo(start.add(0,0));

      paper.view.draw();

      path.on('mousedrag', function (event) {
          this.position = event.point;
      });
  });
</script>

最佳答案

您可以使用paper.view.scrollBy(new Point(x, y))滚动整个View

这是一些示例代码:

// Draw a Rectangle for reference
var rect = new Path.Rectangle(new Point(200, 100), new Point(50, 50))
rect.strokeColor = 'black'
rect.strokeWidth = 1

// Create a Tool so we can listen for events
var toolPan = new paper.Tool()
toolPan.activate()

// On drag, scroll the View by the difference between mousedown 
// and mouseup
toolPan.onMouseDrag = function (event) {
  var delta = event.downPoint.subtract(event.point)
  paper.view.scrollBy(delta)
}

这是一个 Sketch为此(在 Canvas 上拖动鼠标)

<小时/>

旁注:您不需要同时包含 paper-core.js 和 paper-full.js。使用其中之一,具体取决于您是否也需要 PaperScript 支持(paper-full.js 也包括 PS)。

关于javascript - 如何使用 paperjs 滚动 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46353026/

相关文章:

javascript动态创建iframe,但是如何附加属性呢?

Javascript 事件监听器在错误的元素上工作?

android - Canvas 的 `drawTextRun` 有什么用?它与 `drawText` 有何不同?

javascript - 使用 Paper.js 在贝塞尔曲线中插入新点的理想 handle 位置

javascript - Paperjs 用数组除法?

javascript - Socket.io 发出前的舍入数?

javascript - CasperJS:如何填写 asp 表单

html - 如何创建圆形旋转导航栏

javascript - 使用 <canvas> 的 HTML5 运动跟踪

javascript - 如何使用 PaperJs 来回弹图像