我有一個SVG文本元素的地圖來命名位置。我希望位置(形狀)是可點擊的,而且它們是,但是由於文本元素位於它們之上,如果有人將鼠標懸停在文本元素上並單擊,則不會發生任何事情,因爲未單擊該形狀:文本元素爲。我怎樣才能做到這一點,如果文本元素被點擊,點擊「通過」它和形狀?如何製作一個SVG文本元素「click-through-able」?
16
A
回答
41
推出的Mozilla爲此,稱爲指針事件 CSS屬性。它最初僅限於SVG圖形,但現在支持在現代瀏覽器最DOM元素:
span.label { pointer-events: none; }
回答這個問題有一些好的信息在舊IE中實現相同的結果:
5
這個CSS添加到文本:
pointer-events: none;
2
如果可以使用「<g>」元素中的文本對地圖形狀進行分組,則可以將點擊附加到組而不是形狀。這樣做也會給應用於該組的變換應用於形狀和文本帶來額外的好處。如果分組是不可能的,那麼我同意以前的答案絕對是你最好的選擇。基本上發生了什麼事情是這樣的:大多數人想象一下通過Z-index向下穿透的點擊,但它不會那樣工作。點擊通過DOM向上冒泡,所以如果文本不處理點擊,它會冒泡到父組或容器的下一個DOM元素。這繼續向上,直到它到達最頂端的DOM元素。
相關問題
- 1. Svg文本元素被另一個svg元素重疊
- 2. 如何定位一個文本框下一個SVG元素?
- 3. 如何在svg中製作一個元素的反射
- 4. 如何淘汰svg文本元素?
- 5. SVG文本元素速度
- 6. 如何定位一個「G」元素SVG
- 7. 如何將一個SVG元素
- 8. 如何縮放SVG rectagle以適合svg文本元素
- 9. 得到一個SVG元素
- 10. svg的文本和邊界像一個元素一樣
- 11. 問題添加多個文本元素SVG元素
- 12. 將SVG元素插入另一個帶類的SVG元素
- 13. SVG元素部分地落在另一個SVG元素下面
- 14. 如何將一個元素添加到svg文檔?
- 15. 如何限制文本和元素一個div
- 16. 如何分配一個類到一個SVG元素
- 17. 如何使用D3嵌套在另一個SVG元素(父級)中的SVG(子元素)元素的引用?
- 18. D3沒有顯示SVG文本元素
- 19. D3選擇SVG文本元素
- 20. SVG獲取文本元素寬度
- 21. SVG上未顯示文本元素
- 22. 在svg組中渲染文本元素
- 23. Svg文本元素垂直翻轉
- 24. 旋轉SVG文本元素的內容
- 25. SVG元素 - 處理和選擇文本
- 26. 如何在單擊命令中將一個SVG路徑元素變形爲另一個SVG路徑元素?
- 27. 如何隱藏svg元素
- 28. 如何將SVG元素包裝到svg元素中?
- 29. 我如何限制元素的文本?
- 30. 如何製作一個div貼到另一個元素
COOL,不知道它與SVG一起工作,只是「常規」元素 – Cystack
@Cystack'指針事件'屬性從一開始就一直是SVG的一部分(不,它不是由Mozilla引入的 - 儘管Mozilla在svg之外開創了這個屬性的使用)。正如第一個鏈接所說的那樣:「警告:在非SVG元素的CSS中使用指針事件是實驗性的」。 –
另外,指針事件在IE9 + AFAIK的SVG內容中也可以工作。 –