javascript - 如何在鼠标右键的 "contextmenu"事件上选择对象

标签 javascript fabricjs

我正在尝试在单击鼠标右键时添加自定义上下文菜单,以便用户可以删除对象。

我已经设法访问“contextmenu”事件,但要触发removeObject函数,我必须使对象处于事件状态。

const upperCanvas = document.getElementsByClassName("upper-canvas")[0];

upperCanvas.addEventListener("contextmenu", function(e) {
    e.preventDefault();
    canvas.selection = true;
});

之后我尝试调用 canvas.fire('mouse:click') 但似乎不起作用。

最佳答案

为 Canvas 实例设置 fireRightClick: true 并在鼠标弹起事件中检查按钮值 3(用于右键单击)。然后使用canvas.remove(object)删除目标。

var canvas = new fabric.Canvas('c', {
  stopContextMenu: true,
  fireRightClick: true
});
var textbox = new fabric.Textbox('FABRICJS')
canvas.add(textbox)
canvas.on('mouse:up', function(options) {
  if (options.button == 3) {
    canvas.remove(options.target);
  }
})
canvas{
  border:1px solid;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.6.0/fabric.js"></script>
<canvas id='c' width=400 height=400></canvas>

关于javascript - 如何在鼠标右键的 "contextmenu"事件上选择对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54889531/

相关文章:

javascript - jQuery改变多个div元素的内联样式

javascript - 在 Yeoman 中,如何移动文件夹并在原始位置强制删除?

javascript - 从 Json 加载 FabricJS

javascript - 如何使用javascript检查标签是否存在而不会出错

javascript - 不用ajax读取geoJson

javascript - 在将 Canvas 保存为图像之前如何知道渲染是否完成?

javascript - 类型错误未定义不是函数 - Fabric JS

javascript - FabricJS:在 Canvas 上使用对象控件来调整大小,但不能缩放

javascript - 当 Canvas 重新定位时,Fabric.js Canvas 坐标的值会发生变化

javascript - js正则表达式允许点破折号但不允许并排