據我讀到關於這個主題d3.js用於主要部分SVG而不是HTML5的畫布。 SVG和Canvas的優點和缺點都很清楚,並且已經討論過了。現在我發現在d3.js中可以使用Canvas或與SVG結合使用。主要原因應該是爲大數據集獲得更好的性能(比如cubism.js用於實時數據可視化)。我的問題是:當我使用Canvas over SVG獲得更好的性能時,我仍然有交互的可能性嗎?我知道Canvas本身允許操作,但實現比SVG要困難得多。那麼當我使用d3.js Canvas方法時,我可以保持SVG的交互嗎?d3.js - 保持與使用畫布的交互
1
A
回答
2
首先,D3不需要任何特定的渲染技術。它主要是(除了一些專門的幫助者)不知道你是否使用HTML,SVG,Canvas或完全不同的渲染。
正如您所指出的,SVG和Canvas之間的主要區別之一是SVG具有「內置」交互功能,即它爲事件監聽器等提供了工具。帆布沒有這個。
然而,您可以獲得與在Canvas中SVG相同的交互性。訣竅是使用Javascript來監控用戶在各種元素方面的表現。有關這方面的介紹,請參閱here。
請注意,根據您想要的準確交互類型,可能需要付出相當大的實現努力才能實現與SVG已提供的相同的效果。另外請注意,這會導致性能損失,這可能會否定Canvas對SVG的一些好處。
相關問題
- 1. SVG到畫布與d3.js
- 2. 與D3.js中的酒吧交互
- 3. D3.js csv交互篩選
- 4. d3 JS動態畫布
- 5. CSV使用d3.js與使用d3.js
- 6. 與D3.js相互作用的力量
- 7. 使用d3.js(或類似的)創建交互式平面圖
- 8. 使用Rspec /水豚/硒與畫布元素進行交互
- 9. d3.js圖與dc.js圖之間的交互
- 10. 將d3.js畫布附加到div
- 11. 飛鏢JS互操作與D3
- 12. d3.js樹佈局 - 交叉鏈接
- 13. 方法比較:EaselJS vs多個畫布與隱藏畫布的交互性
- 14. 影響d3.js中多個單獨圖表的交互作用?
- 15. 在D3.js中使用畫布描邊劃線插值
- 16. 使用d3.js在畫布上語義縮放
- 17. d3.js交互式分組條形圖交替旋轉
- 18. 簡單的畫布矩形與Javascript的交互
- 19. 我可以禁用每個鼠標與畫布交互與底層對象的交互?
- 20. d3.js畫圓與悸動外線
- 21. 2d畫布煙霧與鼠標交互的例子。
- 22. 在畫布上繪製交互圓圈
- 23. CSS懸停僞類和畫布交互?
- 24. D3 V4 - 畫布轉場:d3.timer持續時間
- 25. 使用D3.JS訪問JS對象中的'值'使用D3.JS
- 26. 如何用d3.js水平翻轉畫布左側的文本?
- 27. 如何在佈局中保持畫布?
- 28. Jupyter筆記本畫布使用%matplotlib內聯時不交互
- 29. D3 SVG到畫布
- 30. 使用d3.js