在網頁上,我想動態渲染非常基本的流程圖,即通過線連接的幾個框。理想情況下,用戶可以點擊其中一個框(DIV?),然後轉到其他頁面。訴諸Flash似乎是一種矯枉過正。有沒有人知道任何客戶端(即服務器不可知)的Javascript或CSS庫/技術可能有助於實現這一目標?是否存在用於在Javascript/CSS中呈現基本流程圖的庫?
8
A
回答
1
0
這種流程圖可以使用CSS,訴諸JavaScript的圖形庫(畫布)可能是矯枉過正來完成。你可能希望檢查一些家譜網站是如何做到這一點的,以獲得家譜。
1
我發現的最好和最簡單的是js-graph.it。
它也有這個有用的功能:deciding the orientation of the flow。例如,在我的情況下,我有一個文檔工作流程,所以我需要它流向右側。
更簡單的選擇是wz_jsGraphics。在我的情況下,我畫這樣的箭頭:
/**Draw an arrow made of 3 lines.
* Requires wz_jsGraphics (http://www.walterzorn.de/en/jsgraphics/jsgraphics_e.htm).
* @canvas a jsGraphics object used as canvas
* @blockFrom id of the object from which the arrow starts
* @blockTo id of the object where the arrow ends with a arrowhead
*/
function drawArrow(canvas, blockFrom, blockTo){
//blocks
var f = $("#" + blockFrom);
var t = $("#" + blockTo);
//lines positions and measures
var p1 = { left: f.position().left + f.outerWidth(), top: f.position().top + f.outerHeight()/2 };
var p4 = { left: t.position().left, top: t.position().top + t.outerHeight()/2 };
var mediumX = Math.abs(p4.left - p1.left)/2;
var p2 = { left: p1.left + mediumX, top: p1.top };
var p3 = { left: p1.left + mediumX, top: p4.top };
//line A
canvas.drawLine(p1.left, p1.top, p2.left, p2.top);
//line B
canvas.drawLine(p2.left, p2.top, p3.left, p3.top);
//line C
canvas.drawLine(p3.left, p3.top, p4.left, p4.top);
//arrowhead
canvas.drawLine(p4.left - 7, p4.top - 4, p4.left, p4.top);
canvas.drawLine(p4.left - 7, p4.top + 4, p4.left, p4.top);
}
var jg = new jsGraphics('myCanvasDiv');
drawArrow(jg, 'myFirstBlock', 'mySecondBlock');
jg.paint();
相關問題
- 1. DOM呈現中是否存在事件?
- 2. 在圖像上呈現任意文本是否存在任何安全隱患?
- 3. 基於圖像是否存在,在TPL文件中隱藏DIV?
- 4. 在基於url的視圖中呈現數據
- 5. 呈現基於矩形的小地圖
- 6. as_view()(用於基於類的視圖)是否可以在裝飾器中實現?
- 7. pthreads互斥體實現中是否存在基本錯誤?
- 8. 在Asp.net mvc中呈現html之後是否存在鉤點?
- 9. Qt是否使用ClearType在Windows中呈現文本?
- 10. 檢查存儲過程是否存在於數據庫中?
- 11. 基於模型屬性值在視圖中呈現html片段
- 12. 基於HTML5 Canvas的映射庫是否存在?
- 13. 是否有可能在wicked_pdf中使用jQuery來呈現圖表?
- 14. Chrome的CSS可見性呈現中是否存在錯誤?
- 15. 在MVC中,視圖最終是否將HTML呈現回Controller,或視圖是否將HTML呈現給瀏覽器?
- 16. 基於Flash的CFGRID可以在單元格中呈現基本HTML嗎?
- 17. 用於在基於ARC的應用程序中呈現和解散的內存管理
- 18. 圖 - Dijkstra算法 - 基於圖塊的圖 - 圖中是否存在「阻塞」項?
- 19. 是否存在用於Java的MSNP實現,ActionScript(Flash)是否存在?
- 20. NSAttributedString在基於視圖的NSOutlineView呈現爲普通字符串?
- 21. Angular ng-repeat在基於JSON的HTML上呈現視圖
- 22. 主義 - 檢查是否存在記錄基於現場
- 23. iOS - 檢查圖像是否存在於應用程序包中
- 24. 基本位圖字體呈現
- 25. 本機基ListItem呈現空視圖?
- 26. 是否存在基於通信的矢量繪圖平臺?
- 27. 檢查圖像是否存在於我的本地資源中
- 28. 在MVC視圖中呈現富文本?
- 29. 在調試過程中,Flask/Jinja2是否提供了保存呈現的模板?
- 30. GWT中是否存在「頁面呈現完成」事件?