javascript - HTML 如何防止在 Canvas 元素上拖动时意外选择页面?

标签 javascript html html5-canvas

我正在尝试构建一个绘画应用程序,但遇到了一个问题,如果您在绘画时拖出 Canvas ,它会选择页面上的内容。

如果用户愿意,我希望可以选择页面上的内容,但如果在 Canvas 上开始“拖动”,则不能选择。有什么简单的方法可以做到这一点吗?

在 Firefox 和 Chrome 之间,Firefox 似乎默认处理此问题,但 Chrome 则不然。

最佳答案

简单prevent the default behaviormousedown 事件发生在 Canvas 上时:

const canvas = document.getElementById( 'canvas' );
// We do handle this event
canvas.onmousedown = (e) => { e.preventDefault(); };

canvas.getContext('2d').fillText( 'start a drag from here', 20, 20 );
canvas { border: 1px solid; }
<p>don't select me when drag started from canvas</p>
<canvas id="canvas"></canvas>
<p>don't select me when drag started from canvas</p>

关于javascript - HTML 如何防止在 Canvas 元素上拖动时意外选择页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59498283/

相关文章:

javascript - 具有多个值的 SELECT 标记中的选项?

javascript - 带有可选字符的 jQuery Mask

html - 在 HTML 中嵌入一张 SVG Sprite 图像

javascript - 使用 fabric.js 移动元素时如何将图像保持在 Canvas 的背面?

javascript - 在 javascript 中使用 fetch 请求 API 时出现 CORS 策略错误

javascript - 如何在ionic 3+中更改单个页面的背景颜色

javascript - React 组件上的 pageshow 事件监听器无法正常工作

html - 滚动到 ID 根本不起作用?怎么了?

javascript - 为什么球会穿过砖 block ?

javascript - Fabric js : Increase font size instead of just scaling when resize with mouse