摘要:能干什么,廢話不多說,進(jìn)傳送門看看。在中,我們可以在中設(shè)置控件與控件之間的關(guān)系有點不同使用方法使用第六步樣式通過設(shè)置連接線的樣式?jīng)]有箭頭連接線樣式箭頭樣式運行結(jié)果
GoJS能干什么,廢話不多說,進(jìn)傳送門看看。傳送門第一步:Hello World!
第二步:圖像和模型
var $ = go.GraphObject.make; var myDiagram = $(go.Diagram, "myDiagramDiv", { "undoManager.isEnabled": true // CTRL-Z撤銷操作,CTRL-Y恢復(fù)操作 }); // 新建模型 var myModel = $(go.Model); // 在模型數(shù)據(jù)中,每個節(jié)點由JavaScript對象表示 myModel.nodeDataArray = [ { key: "Alpha" }, { key: "Beta" }, { key: "Gamma" } ]; myDiagram.model = myModel;
生成三個可拖拽的對象
第三步:節(jié)點樣式 - nodeTemplate單擊并拖動上圖中的背景以平移視圖
單擊一個節(jié)點來選擇它,或者按下并拖動一個節(jié)點來移動它
使用CTRL-C和CTRL-V 或 按住CTRL然后控件拖放來復(fù)制
用Delete鍵刪除選中控件, 戳我查看更多快捷鍵
如果撤消管理器已啟用,CTRL-Z撤銷操作,CTRL-Y恢復(fù)操作
我們可以修改節(jié)點的樣式種類:
形狀: Shape
文本塊: TextBlock
圖片: Picture
容器面板: Panel
// 使用介紹 // 第一個參數(shù) go.Node,由面板和本身的其他節(jié)點本身的其他圖形對象組成 // 第二個參數(shù) "Auto", 對應(yīng)面板的類型, myDiagram.nodeTemplate = $(go.Node, "Auto", // 然后將元素定義在這個面班中:Shap,TextBlock等 $(go.TextBlock, // TextBlock的內(nèi)容和節(jié)點數(shù)據(jù)對象中的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", // 整個控件是藍(lán)色背景 { background: "#44CCFF" }, $(go.Picture, // 通常情況下,圖片需要有明確的寬度。當(dāng)沒有設(shè)置圖片路徑 或者 圖片是透明的時候會顯示紅色背景, { 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")) // 綁定數(shù)據(jù)的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;
運行結(jié)果:
如果我們想要實現(xiàn)圖像模型之間的聯(lián)系,基礎(chǔ)模型是滿足不了我們的需求的,我們看看其他的模型吧。 (GraphLinksModel and TreeModel)
1. GraphLinksModel
在GraphLinksModel中,我們可以在model.linkDataArray中設(shè)置控件與控件之間的關(guān)系
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設(shè)置連接線的樣式 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;
運行結(jié)果
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100144.html
摘要:是一個庫,讓你輕松創(chuàng)建現(xiàn)代瀏覽器的交互圖。支持圖形化的模板和圖形對象屬性數(shù)據(jù)模型的數(shù)據(jù)綁定。許多預(yù)定義的工具和命令執(zhí)行,大部分的圖表所需要的標(biāo)準(zhǔn)的行為。外觀和行為的定制是大多設(shè)置屬性的問題。 GoJS是一個JavaScript庫,讓你輕松創(chuàng)建現(xiàn)代Web瀏覽器的交互圖。 GoJS支持圖形化的模板和圖形對象屬性數(shù)據(jù)模型的數(shù)據(jù)綁定。你只需要保存和恢復(fù)模型,包括持有任何性質(zhì)的應(yīng)用需求,簡單的J...
摘要:非定向鏈接最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節(jié)點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點??梢院苋菀椎亟⒎较颍恍杼砑右粋€形狀并設(shè)置其屬性。目前也就只能先寫這么多吧入門的話問題不大了 非定向鏈接 最簡單的鏈接沒有箭頭指示方向。該模板只包含一個形狀為主要元素,因為這是在節(jié)點之間繪制的線條。鏈接的路線被計算后將得到一個路徑的點。 diag...
摘要:為了方案探索查看了一下幾個網(wǎng)上比較好找到的庫看下對于我們定制的需求是否足夠可以拖拽卡片不能拖拽線條沒有文字可以編輯文字注意左邊是有編輯區(qū)域可以拖拽卡片可以拖拽連線連線上有節(jié)點連線上不能新增節(jié)點只能在某些方向上調(diào)整不知道怎么刪除可以拖拽連線當(dāng) 為了方案探索, 查看了一下幾個網(wǎng)上比較好找到的庫, 看下對于我們定制的需求是否足夠... Raphael SVG 可以拖拽卡片, 不能拖拽線條 ...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負(fù)責(zé),用的是框架?;谝陨咸峒暗降姆N種原因,上年年末我做起了技術(shù)調(diào)研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內(nèi)。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
摘要:公司項目需要用到繪圖框架,繪圖部分以前是另一位同事負(fù)責(zé),用的是框架。基于以上提及到的種種原因,上年年末我做起了技術(shù)調(diào)研,希望能找到一個合適我們項目的繪圖框架。兼容性問題項目對瀏覽器兼容性比較寬松,瀏覽器兼容性問題不在考慮范圍之內(nèi)。 showImg(https://ws3.sinaimg.cn/large/006tKfTcgy1g0ppk2kkhxj30ka0b4gm5.jpg); 公司...
閱讀 1710·2021-11-24 09:39
閱讀 2491·2021-11-18 10:07
閱讀 3674·2021-08-31 09:40
閱讀 3345·2019-08-30 15:44
閱讀 2639·2019-08-30 12:50
閱讀 3661·2019-08-26 17:04
閱讀 1437·2019-08-26 13:49
閱讀 1271·2019-08-23 18:05