html5 – 通过html画布获取点击

我看到很多关于如何获取html5画布元素以接收鼠标点击的问题,我正在使用画布作为叠加层,鼠标点击不会通过以下元素。我正在将图像加载到画布中,我认为这可能是问题,但我也尝试了一个空的画布,我得到相同的结果。

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

我的理解是,画布认情况下对鼠标是透明的?

解决方法

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

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

除了指示该元素不是鼠标事件的目标之外,值none指示鼠标事件“通过”元素,而是指向该元素的“underneath”。

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

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

另外,如果您的应用程序是特定于谷歌地图,您可以插入您的画布作为谷歌地图覆盖,从而避免了问题在一起。

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

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码