javascript - Fabric.js – 当我按住鼠标按钮移动鼠标时,元素未定义

标签 javascript mouseevent fabricjs

我有一个由许多不透明度 = 0 的圆圈组成的 Canvas 。 当我执行以下操作时,我想将其更改为 1:

  1. 点击圆圈
  2. 按下鼠标按钮时(用光标)移动到圆圈上。

Nr 1 很简单。这是通过 canvas.on('mouse:down......)

解决的

但是我不知道应该如何解决问题 2。 以下是我的代码中的一些片段:

var mouseDown = 0;
document.body.onmousedown = function() { 
    mouseDown = 1;
}
document.body.onmouseup = function() {
    mouseDown = 0;
}

canvas.on('mouse:move', function(options) {
    if (mouseDown  && options.target) {
        options.target.set('opacity', 1)
        canvas.renderAll()
}});

但是按下鼠标按钮时 option.target 始终未定义

Object {target: undefined, e: MouseEvent}

最佳答案

我在 FabricJS 中使用 typescript 并遇到了同样的问题。我发现您可以使用 canvas.findTarget 方法让 FabricJS 为您执行此操作。我相信您可以将其转换为相应的 JavaScript。

canvas.on('mouse:move', (e) => {
  var target = canvas.findTarget(<MouseEvent>(e.e), true);
}

关于javascript - Fabric.js – 当我按住鼠标按钮移动鼠标时,元素未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438166/

相关文章:

javascript - 使用 JavaScript 和浏览器中保存的 cookie 获取网站的 HTML 代码

javascript - 鼠标按钮向上

java - 为什么在将事件添加到每个饼图切片后,JavaFX PieChart 标签不显示? (Java 8)

javascript - 更改fabricJs中 "hasControls"的边框大小

javascript - Fabric.js 的文本框不换长字

javascript - Backbone、TypeScript 和 super

javascript - 动画时换行的子元素

javascript - 不能使用嵌套 anchor

java - 如何从网格中获取我单击的组件?

javascript - 删除 FabricJS 中的图层和对象