如何以编程方式正确移动对象?

帕维尔·格里申(Pavel Grishin)

我需要在鼠标光标后移动对象。如果使用代码,我会遇到很大的性能问题。

canvas.on('mouse:move', (event) => {
    const pointer = canvas.getPointer(event);
    cursor.set({
        top: pointer.y,
        left: pointer.x,
    });
    canvas.renderAll();
})

据我所知,织物可以创建两层,是否可以在顶层放置一个物体进行移动?

这是一个示例https://jsfiddle.net/Warmor/7bL02sjv/38/

杜尔加

创建一个包含所有行的组,然后删除perPixelTargetFind,最重要的是调用canvas#requestRenderAll,而不是canvas#renderAll

演示

const canvas = new fabric.Canvas("canvas", {
  width: 500,
  height: 500,
  selection: false,
  centeredScaling: true,
});

const createLine = (index) => {
  return new fabric.Line([index * 5, 0, 500 - index * 5, 500], {
    stroke: "#000",
    strokeWidth: 1,
    fill: "#000"
  });
};
const lines = [];
for (i = 0; i < 100; i++) {
  lines.push(createLine(i));
}
const group = new fabric.Group(lines, {
  selectable: false
});
canvas.add(group);

const cursor = new fabric.Rect({
  stroke: "#000",
  strokeWidth: 1,
  fill: "red",
  width: 50,
  height: 50,
  top: 0,
  left: 0,
  selectable: false
});
canvas.add(cursor);

canvas.on('mouse:move', (event) => {
  const pointer = canvas.getPointer(event);
  cursor.set({
    top: pointer.y,
    left: pointer.x,
  });
  canvas.requestRenderAll();
})
.canvas {
  width: 1000px;
  height: 1000px;
  border: 1px solid Black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.4.0/fabric.js"></script>
<canvas id="canvas" class="canvas" ></canvas>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式移动mapView(osmdroid)

来自分类Dev

WPF GridSplitter:如何以编程方式移动?

来自分类Dev

Swift如何以编程方式移动UIButton?

来自分类Dev

如何以编程方式移动表格?

来自分类Dev

如何以正确的方式更新对象值

来自分类Dev

如何以编程方式在移动设备上调用本机datepicker

来自分类Dev

如何以编程方式移动/分类django-filer文件?

来自分类Dev

如何以编程方式在约束布局中移动视图(按钮)?

来自分类Dev

如何以编程方式在选项卡之间移动

来自分类Dev

DatagridView:如何以编程方式将当前索引移动到以编程方式选择的行?

来自分类Dev

如何以编程方式选择Fabric.js对象

来自分类Dev

如何以编程方式选择Fabric.js对象

来自分类Dev

如何以编程方式创建传单图标类的对象列表?

来自分类Dev

ImageView,如何以编程方式获取可绘制对象的getSrc?

来自分类Dev

如何以正确的方式复制SQLAlchemy映射的对象?

来自分类Dev

如何以正确的方式将对象转换为GSON(JSON)?

来自分类Dev

如何以正确的方式将java对象写入firebase?

来自分类Dev

如何以编程方式将滚动条移动到画布的底部-Tkinter

来自分类Dev

如何以编程方式设置图像以随单元移动和调整大小?

来自分类Dev

如何以编程方式在Google地图中移动一点

来自分类Dev

如何以编程方式在Google地图中移动一点

来自分类Dev

如何以编程方式设置图像以随单元移动和调整大小?

来自分类Dev

Azure 应用服务如何以编程方式移动 deploy.cmd

来自分类Dev

Grails:如何以编程方式将命令对象数据绑定到服务中的域对象?

来自分类Dev

如何以编程方式向键相同的对象添加对象?

来自分类Dev

如何以编程方式验证log4j 2已正确配置?

来自分类Dev

如何以编程方式检查字符串的日期格式以获取正确的格式

来自分类Dev

如何以编程方式检测母版中不正确(不基于基础)的合并气泡?

来自分类Dev

如何以编程方式检查字符串的日期格式以获取正确的格式

Related 相关文章

  1. 1

    如何以编程方式移动mapView(osmdroid)

  2. 2

    WPF GridSplitter:如何以编程方式移动?

  3. 3

    Swift如何以编程方式移动UIButton?

  4. 4

    如何以编程方式移动表格?

  5. 5

    如何以正确的方式更新对象值

  6. 6

    如何以编程方式在移动设备上调用本机datepicker

  7. 7

    如何以编程方式移动/分类django-filer文件?

  8. 8

    如何以编程方式在约束布局中移动视图(按钮)?

  9. 9

    如何以编程方式在选项卡之间移动

  10. 10

    DatagridView:如何以编程方式将当前索引移动到以编程方式选择的行?

  11. 11

    如何以编程方式选择Fabric.js对象

  12. 12

    如何以编程方式选择Fabric.js对象

  13. 13

    如何以编程方式创建传单图标类的对象列表?

  14. 14

    ImageView,如何以编程方式获取可绘制对象的getSrc?

  15. 15

    如何以正确的方式复制SQLAlchemy映射的对象?

  16. 16

    如何以正确的方式将对象转换为GSON(JSON)?

  17. 17

    如何以正确的方式将java对象写入firebase?

  18. 18

    如何以编程方式将滚动条移动到画布的底部-Tkinter

  19. 19

    如何以编程方式设置图像以随单元移动和调整大小?

  20. 20

    如何以编程方式在Google地图中移动一点

  21. 21

    如何以编程方式在Google地图中移动一点

  22. 22

    如何以编程方式设置图像以随单元移动和调整大小?

  23. 23

    Azure 应用服务如何以编程方式移动 deploy.cmd

  24. 24

    Grails:如何以编程方式将命令对象数据绑定到服务中的域对象?

  25. 25

    如何以编程方式向键相同的对象添加对象?

  26. 26

    如何以编程方式验证log4j 2已正确配置?

  27. 27

    如何以编程方式检查字符串的日期格式以获取正确的格式

  28. 28

    如何以编程方式检测母版中不正确(不基于基础)的合并气泡?

  29. 29

    如何以编程方式检查字符串的日期格式以获取正确的格式

热门标签

归档