左键单击html画布陷阱并允许右键单击以通过(指针事件)

时间:2013-12-26 08:12:48

标签: javascript html5-canvas mouseevent kineticjs

用例是我在几个html元素之上有一个html画布,它监听右键单击鼠标事件。我想使用鼠标左键在画布上绘图,同时使用右键单击与底层html元素进行交互。

我知道我可以通过将css属性pointer-events设置为none来允许所有鼠标事件通过画布。但是我想只允许右键单击它。

实现此目的的一种方法可能是在画布上侦听右键单击,在回调中将指针事件设置为无,再次手动触发右键单击事件并将指针事件设置回自动。

顺便说一下,我正在使用KineticsJS,我不知道如何使用它手动触发鼠标事件。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

引起我注意的有趣主题。基于this jQuery approach和其他一些方法提出解决方案很有趣。我不熟悉KineticsJS,但这是一个简单的javascript方法

从本质上讲,您可以使用对象的尺寸/位置和pointer-events:none的{​​{1}}伪造一个onmousedown进行右击,以确定是否在背景上点击了右键元素。以下是该方法的一个示例,希望评论能够很好地解释

event.which

jsFiddle

我希望它符合您的需求!