我有一个覆盖在带有按钮的div上的SVG。我知道可以通过为SVG设置"pointer-events: none;"来将鼠标事件传递给下面的元素。然而,当我这样做时,SVG不再识别鼠标事件。
<body>
<div id="website">
<form action="input_button.htm">
<p>
<textarea cols="20" rows="4" name="text"></textarea>
<input type="button" name="Text 1" value="show text"
onclick="this.form.text.value='Test'">
</p>
</form>
</div>
<div id="svgRect">
<svg width="1845" height="140">
<rect id="r0"></rect>
</svg>
</div>
</body>
我希望我的SVG能够识别鼠标何时悬停在它上面,但将点击事件传递给它下面的元素(divs / buttons / ...)。
因此,我的SVG应该只是hover-events的目标,而我的按钮应该是click-events的目标。
我尝试过其他方法,但都没有奏效。- 无法解决问题。
.on("mousedown", function(d,i){
d3.select("#r0")
.style("pointer-events", "none");
d3.select("#website")
.style("pointer-events", "auto");}
.on("mouseup", function(d,i){
d3.select("#r0")
.style("pointer-events", "auto");
d3.select("#website")
.style("pointer-events", "none");
}
这个想法是在我按下鼠标按钮时禁用指针事件,释放后再次启用它们。
有人知道这个问题的解决方案或变通方法吗? 谢谢!
elementFromPoint()
实现。 - ephtron