本帖最后由 JoestarXu 于 2023-5-11 15:41 编辑
或者您可以试试下述方法:
1. 为 canvas 元素添加 click 事件**。
- const canvas = document.querySelector('canvas');
- canvas.addEventListener('click', handleClick);
复制代码
2. 在事件处理程序 handleClick 中,将页面中的其他元素聚焦到一个无法获取焦点的元素上。你可以创建一个隐藏的 input 元素,并将其聚焦,这样其他元素就会失去焦点。
- function handleClick(event) {
- // 创建一个隐藏的input元素
- const focusDummy = document.createElement('input');
- focusDummy.type = 'text';
- focusDummy.style.opacity = 0;
- // 添加到body或其他父元素中
- document.body.appendChild(focusDummy);
- // 聚焦到该元素上
- focusDummy.focus();
- // 然后再将其从 DOM 树中移除掉
- document.body.removeChild(focusDummy);
- // 此处可以执行其他操作,比如绘制图形等
- }
复制代码
这样,在点击 Canvas 元素时,其他元素就会失去焦点了。 |