我有一个svg,可以在上面绘制多个形状。现在我的要求是我想监听键盘事件,如ctrl + C、ctrl + V、ctrl + D、Esc、Delete,以便我可以复制、粘贴、复制选择的形状。但我不知道如何在SVG上监听键盘事件。我尝试了以下代码,但没有成功!!
mySVG.on("keydown", function () {
//code to handle keydown
});
需要帮助吗?提前致谢。
我有一个svg,可以在上面绘制多个形状。现在我的要求是我想监听键盘事件,如ctrl + C、ctrl + V、ctrl + D、Esc、Delete,以便我可以复制、粘贴、复制选择的形状。但我不知道如何在SVG上监听键盘事件。我尝试了以下代码,但没有成功!!
mySVG.on("keydown", function () {
//code to handle keydown
});
需要帮助吗?提前致谢。
由于SVG不是一个输入类型,所以要在窗口上监听事件:
$(window).on('keypress', function (evt){ ... })
<svg>
元素添加tabindex="0"
属性,它就会起作用:
const svgElement = document.querySelector('svg');
svgElement.addEventListener('keydown', event => {
console.log('svg keydown: ', event.key);
});
<svg tabindex="0" width="300" height="200">
<rect width="100%" height="100%" fill="#555" />
<text x="50%" y="50%" font-size="20" text-anchor="middle" fill="white">
Click me and start typing
</text>
</svg>