Как выбрать объект в событии contextmenu правой кнопки мыши - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь добавить пользовательское контекстное меню по щелчку правой кнопки мыши, чтобы пользователь мог удалить объект.

Мне уже удалось получить доступ к событию "contextmenu", но запустить функцию removeObjectЯ должен сделать объект активным.

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

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

Я пытался впоследствии вызвать canvas.fire ('mouse: click'), но, похоже, он не работает.

1 Ответ

0 голосов
/ 26 февраля 2019

Установите 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>
...