html - 通过 html Canvas 获得点击

标签 html canvas mouse

我看到很多关于如何让 html5 canvas 元素接收鼠标点击的问题,我使用 canvas 作为覆盖层,鼠标点击不会传递到下面的元素。我正在将图像加载到 Canvas 中,我认为这可能是问题所在,但我也用空 Canvas 进行了尝试,结果相同。

举个例子: 与图像: http://www.1luckypixel.com/paranormal/canvas_test.html 链接转到谷歌,但它没有注册。

据我了解,默认情况下 Canvas 对鼠标是透明的?

最佳答案

如果不需要跨浏览器功能,那么有一个简单的解决方案。在支持非 SVG 元素的浏览器(webkit、Mozilla 和其他浏览器,但尤其不是 IE)上,您可以使用名为 pointer-events 的 css 属性。来自 MDN:

“CSS 属性 pointer-events 允许作者控制特定图形元素在什么情况下(如果有的话)可以成为鼠标事件的目标。当未指定此属性时,visiblePainted 值的相同特征适用于 SVG 内容.

除了指示该元素不是鼠标事件的目标之外,值 none 指示鼠标事件“穿过”该元素并以该元素“下方”的任何内容为目标。

警告:在 CSS 中对非 SVG 元素使用指针事件是实验性的。目前定义在CSS3 UI草案规范中,有讨论推迟到CSS4。

至少,您可以使用 Modernizr 来检测指针事件支持并执行 Simon Sarris's answer 中提到的不透明技巧在不支持它的浏览器上。

此外,如果您的应用程序特定于谷歌地图,您可以将 Canvas 作为谷歌地图叠加层插入,从而一起避免这个问题。

例子: http://www.patrick-wied.at/static/heatmapjs/demo/maps_heatmap_layer/gmaps.php

关于html - 通过 html Canvas 获得点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3615533/

相关文章:

javascript - 将两个数字与字符串相加

html - 如何放置内联div和输入

javascript - Fabricjs在 Canvas 中复制html

java - LWJGL鼠标滚轮输入

animation - 在 Opengl 中通过鼠标移动形状

php - 我可以使用什么 css 替代方案来不支持的边距顶部 :auto using mpdf to emulate footer on a4 pages?

html - 难以为响应定制 Bootstrap 导航栏

javascript - jQuery 和 Canvas.toDataURL

html - 将按钮放入 Canvas 中

c++ - Windows - SDL_PumpEvents 重置为系统光标