摘要:能干什么,廢話不多說,進傳送門看看。在中,我們可以在中設置控件與控件之間的關系有點不同使用方法使用第六步樣式通過設置連接線的樣式沒有箭頭連接線樣式箭頭樣式運行結果
GoJS能干什么,廢話不多說,進傳送門看看。傳送門第一步:Hello World!
第二步:圖像和模型
var $ = go.GraphObject.make; var myDiagram = $(go.Diagram, "myDiagramDiv", { "undoManager.isEnabled": true // CTRL-Z撤銷操作,CTRL-Y恢復操作 }); // 新建模型 var myModel = $(go.Model); // 在模型數據中,每個節點由JavaScript對象表示 myModel.nodeDataArray = [ { key: "Alpha" }, { key: "Beta" }, { key: "Gamma" } ]; myDiagram.model = myModel;
生成三個可拖拽的對象
第三步:節點樣式 - nodeTemplate單擊并拖動上圖中的背景以平移視圖
單擊一個節點來選擇它,或者按下并拖動一個節點來移動它
使用CTRL-C和CTRL-V 或 按住CTRL然后控件拖放來復制
用Delete鍵刪除選中控件, 戳我查看更多快捷鍵
如果撤消管理器已啟用,CTRL-Z撤銷操作,CTRL-Y恢復操作
我們可以修改節點的樣式種類:
形狀: Shape
文本塊: TextBlock
圖片: Picture
容器面板: Panel
// 使用介紹 // 第一個參數 go.Node,由面板和本身的其他節點本身的其他圖形對象組成 // 第二個參數 "Auto", 對應面板的類型, myDiagram.nodeTemplate = $(go.Node, "Auto", // 然后將元素定義在這個面班中:Shap,TextBlock等 $(go.TextBlock, // TextBlock的內容和節點數據對象中的key綁定 new go.Binding("text", "key")) ); var model = $(go.Model); model.nodeDataArray = [ { key: "text", source: "cat1.png" } ]; myDiagram.model = model;
代碼示例:
var $ = go.GraphObject.make; var myDiagram = $(go.Diagram, "myDiagramDiv", { "undoManager.isEnabled": true }); myDiagram.nodeTemplate = $(go.Node, "Horizontal", // 整個控件是藍色背景 { background: "#44CCFF" }, $(go.Picture, // 通常情況下,圖片需要有明確的寬度。當沒有設置圖片路徑 或者 圖片是透明的時候會顯示紅色背景, { margin: 10, width: 50, height: 50, background: "red" }, new go.Binding("source")), $(go.TextBlock, "Default Text", { margin: 12, stroke: "white", font: "bold 16px sans-serif" }, // 初始化文本樣式 new go.Binding("text", "name")) // 綁定數據的key ); var model = $(go.Model); model.nodeDataArray = [ { name: "Don Meow", source: "1.png" }, { name: "Copricat", source: "2.png" }, { name: "Demeter", source: "3.png" }, { /* Empty node data */ } ]; myDiagram.model = model;
運行結果:
如果我們想要實現圖像模型之間的聯系,基礎模型是滿足不了我們的需求的,我們看看其他的模型吧。 (GraphLinksModel and TreeModel)
1. GraphLinksModel
在GraphLinksModel中,我們可以在model.linkDataArray中設置控件與控件之間的關系
var model = $(go.GraphLinksModel); model.nodeDataArray = [ { key: "A" }, { key: "B" }, { key: "C" } ]; model.linkDataArray = [ { from: "A", to: "B" }, { from: "B", to: "C" } ]; myDiagram.model = model;
2. TreeModel
TreeModel有點不同
// 使用方法 var model = $(go.TreeModel); model.nodeDataArray = [ { key: "A" }, { key: "B", parent: "A" }, { key: "C", parent: "B" } ]; myDiagram.model = model;
// TreeModel使用 var model = $(go.TreeModel); model.nodeDataArray = [ { key: "1", name: "Don Meow", source: "cat1.png" }, { key: "2", parent: "1", name: "Demeter", source: "cat2.png" }, { key: "3", parent: "1", name: "Copricat", source: "cat3.png" }, { key: "4", parent: "3", name: "Jellylorum", source: "cat4.png" }, { key: "5", parent: "3", name: "Alonzo", source: "cat5.png" }, { key: "6", parent: "2", name: "Munkustrap", source: "cat6.png" } ]; myDiagram.model = model;第六步:Link 樣式 - linkTemplate
// 通過linkTemplate設置連接線的樣式 myDiagram.linkTemplate = $(go.Link, { routing: go.Link.Orthogonal, corner: 5 }, $(go.Shape, { strokeWidth: 3, stroke: "#555" })); // 沒有箭頭 /* $(go.Shape, {strokeWidth:2}, new go.Binding("stroke", "color") // 連接線樣式 ), $(go.Shape, {toArrow: "Standard", stroke:null}, // 箭頭樣式 new go.Binding("fill", "color") ) */ ); var model = $(go.TreeModel); model.nodeDataArray = [ { key: "1", name: "Don Meow", source: "cat1.png" }, { key: "2", parent: "1", name: "Demeter", source: "cat2.png" }, { key: "3", parent: "1", name: "Copricat", source: "cat3.png" }, { key: "4", parent: "3", name: "Jellylorum", source: "cat4.png" }, { key: "5", parent: "3", name: "Alonzo", source: "cat5.png" }, { key: "6", parent: "2", name: "Munkustrap", source: "cat6.png" } ]; myDiagram.model = model;
運行結果
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100144.html
摘要:是一個庫,讓你輕松創建現代瀏覽器的交互圖。支持圖形化的模板和圖形對象屬性數據模型的數據綁定。許多預定義的工具和命令執行,大部分的圖表所需要的標準的行為。外觀和行為的定制是大多設置屬性的問題。 GoJS是一個JavaScript庫,讓你輕松創建現代Web瀏覽器的交互圖。 GoJS支持圖形化的模板和圖形對象屬性數據模型的數據綁定。你只需要保存和恢復模型,包括持有任何性質的應用需求,簡單的J...
摘要:非定向鏈接最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點??梢院苋菀椎亟⒎较颍恍杼砑右粋€形狀并設置其屬性。目前也就只能先寫這么多吧入門的話問題不大了 非定向鏈接 最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點。 diag...
摘要:為了方案探索查看了一下幾個網上比較好找到的庫看下對于我們定制的需求是否足夠可以拖拽卡片不能拖拽線條沒有文字可以編輯文字注意左邊是有編輯區域可以拖拽卡片可以拖拽連線連線上有節點連線上不能新增節點只能在某些方向上調整不知道怎么刪除可以拖拽連線當 為了方案探索, 查看了一下幾個網上比較好找到的庫, 看下對于我們定制的需求是否足夠... Raphael SVG 可以拖拽卡片, 不能拖拽線條 ...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負責,用的是框架?;谝陨咸峒暗降姆N種原因,上年年末我做起了技術調研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負責,用的是框架?;谝陨咸峒暗降姆N種原因,上年年末我做起了技術調研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
閱讀 1695·2021-11-24 09:39
閱讀 2469·2021-11-18 10:07
閱讀 3657·2021-08-31 09:40
閱讀 3317·2019-08-30 15:44
閱讀 2628·2019-08-30 12:50
閱讀 3649·2019-08-26 17:04
閱讀 1430·2019-08-26 13:49
閱讀 1262·2019-08-23 18:05