fabric.js画布监听键盘事件吗?

白热爱老虎

在我的Fabric应用程序中,我目前正在侦听某些按键,例如Delete键,并删除所有选定的元素。我听按键的方法是:

document.onkeydown = function(e) {
  if (46 === e.keyCode) {
  // 46 is Delete key
  // do stuff to delete selected elements
}

不过,我遇到了一个问题:页面上还有其他元素,例如文本框,并且在输入文本框时,我不希望Delete键删除任何元素。

这个问题中,描述了一种将事件侦听器附加到HTML5画布的方法:

canvas.tabIndex = 1000;

允许您canvas.addEventListener与键盘事件一起使用

我可以在布料的画布上使用类似的东西吗?

当我这样尝试时

var CANVAS = new fabric.Canvas('elemID', {selection: false})
CANVAS.tabIndex = 1000;
CANVAS.addEventListener("keydown", myfunc, false);

我从Chrome收到“未捕获的TypeError:未定义不是函数”。

白热爱老虎

这是我最终要做的事情:在布料使用的画布周围有一个包装div,并将事件侦听器添加到该包装。

var canvasWrapper = document.getElementById('canvasWrap');
canvasWrapper.tabIndex = 1000;
canvasWrapper.addEventListener("keydown", myfunc, false);

这就像我想要的那样工作。delete侦听器不会接受文本框内发生按下操作。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章