1
A
回答
2
您可能獲得的Cytoscape 的 canvas元素及其以下方式背景下...
var canvas = document.querySelector('canvas[data-id="layer2-node"]');
var context = canvas.getContext('2d');
下面是一個例子,展示瞭如何使用上下文在畫布上畫東西...
var cy = cytoscape({
container: document.getElementById('cy'),
elements: [
{ data: { id: 'a' } },
{ data: { id: 'b' } },
{
data: {
id: 'ab',
source: 'a',
target: 'b'
}
}
]
});
var canvas = document.querySelector('canvas[data-id="layer2-node"]');
var context = canvas.getContext('2d');
// draw rectangle using general canvas method
function draw() {
context.fillRect(canvas.width/2.1, 60, 30, 30);
requestAnimationFrame(draw);
}
draw();
<script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.1.0/cytoscape.min.js"></script>
<div id="cy" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;"></div>
1
你不應該試圖抓住Cytoscape的畫布。由於性能原因,Cytoscape使用了多個畫布,並且不能保證哪種類型的上下文有效。它可能使用context2d,或者可能使用webgl來提高性能。即使使用了context2d,也無法跟蹤畫布上發生何時或發生了哪些狀態更改(例如轉換)。通過做出自己的改變,你可能會破壞Cytoscape的假設。
如果要疊加內容,應該製作自己的疊加畫布。您通常不應修改屬於公共/記錄API以外的lib的dom元素或js對象。
1
按照@ maxkfranz(Cytoscape dev)的建議,我開發了一個名爲cytoscape-canvas的輕量級Cytoscape.js擴展,該擴展在圖形上方和/或下方創建畫布。它使您能夠充分發揮您的靈活性。
如果你有興趣,請查看readme!
相關問題
- 1. 如何獲得對WPF的啓動畫面的參考?
- 2. HTML5畫布:如何動畫上下文?
- 3. 我如何獲得對所有託管線索的參考
- 4. Unity3D畫布。我如何獲得相機?
- 5. 如何獲得Cytoscape節點的程度
- 6. 如何獲得在畫布
- 7. 無法獲取畫布的上下文
- 8. jquery,從tr獲取畫布上下文
- 9. 從上下文獲取畫布
- 10. 使用webdriverio獲取畫布上下文
- 11. 如何獲得div的參考?
- 12. 如何獲得「Mtb」的參考?
- 13. 無法獲得對IPart的參考
- 14. 如何獲取畫布上下文的框尺寸?
- 15. 如何對齊文本中心,在畫布上留下的Android
- 16. 如何獲取AssetManager而不參考上下文?
- 17. 如何在我的畫布動畫下的畫布上播放視頻?
- 18. 我如何獲得兩個畫布動畫碰撞?
- 19. 我如何更改我在畫布上獲得的圖片的顏色
- 20. 如何獲得參考CONTENTEDITABLE insertHTML
- 21. 如何獲得父組件參考
- 22. ANTLR ambigous參考 - 如何獲得輸出?
- 23. 如何獲得畫布在畫布中的位置
- 24. 切換畫布上下文
- 25. HTML5畫布上下文
- 26. 如何獲得對某種方法的參考?
- 27. 如何獲取對elemental.html.FormData的參考
- 28. 如何獲得正確的上下文
- 29. 如何獲得jsp中的上下文參數值?
- 30. 我如何獲得原始值的參考?
謝謝!這有幫助。 – Aravind
這不建議,它不會是一個穩定的解決方案。如果您可以在您的應用中使用猴子補丁類型的東西,並且可以鎖定您使用的並且從不升級的Cytoscape的確切版本,那麼此解決方案可以正常運行。上述代碼所做的任何假設都沒有記錄/保持穩定,並且可以隨時更改 - 即使是補丁發佈。 – maxkfranz