提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:黄竹雯|2018-12-25 15:59:54.000|阅读 864 次
概述:轻量级流程图控件GoJS DOM树示例
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript和HTML5 Canvas程序中创建流程图,且极大地简化你的JavaScript / Canvas程序。本文主要演示DOM树。
此示例显示此网页的DOM(Document Object Model即文档对象模型)显示为树。图中的每个节点都显示关于DOM中相应的HTML元素的信息。
当选择节点时,对应的HTML元素的背景颜色将更改为淡蓝色(如下图)。这个示例还使用了,它允许父节点展开和折叠其子节点。按钮是在中定义的。带有id属性的元素会在括号中注明。
在页面中查看此示例页面的部分源代码,。
var names = {}; // hash to keep track of what names have been used function init() { if (window.goSamples) goSamples(); // init for these samples -- you don't need to call this var $ = go.GraphObject.make; // for conciseness in defining templates myDiagram = $(go.Diagram, "myDiagramDiv", { initialAutoScale: go.Diagram.UniformToFill, // define the layout for the diagram layout: $(go.TreeLayout, { nodeSpacing: 5, layerSpacing: 30 }) }); // Define a simple node template consisting of text followed by an expand/collapse button myDiagram.nodeTemplate = $(go.Node, "Horizontal", { selectionChanged: nodeSelectionChanged }, // this event handler is defined below $(go.Panel, "Auto", $(go.Shape, { fill: "#1F4963", stroke: null }), $(go.TextBlock, { font: "bold 13px Helvetica, bold Arial, sans-serif", stroke: "white", margin: 3 }, new go.Binding("text", "key")) ), $("TreeExpanderButton") ); // Define a trivial link template with no arrowhead. myDiagram.linkTemplate = $(go.Link, { selectable: false }, $(go.Shape)); // the link shape // create the model for the DOM tree myDiagram.model = $(go.TreeModel, { isReadOnly: true, // don't allow the user to delete or copy nodes // build up the tree in an Array of node data nodeDataArray: traverseDom(document.activeElement) }); } // Walk the DOM, starting at document, and return an Array of node data objects representing the DOM tree // Typical usage: traverseDom(document.activeElement) // The second and third arguments are internal, used when recursing through the DOM function traverseDom(node, parentName, dataArray) { if (parentName === undefined) parentName = null; if (dataArray === undefined) dataArray = []; // skip everything but HTML Elements if (!(node instanceof Element)) return; // Ignore the navigation menus if (node.id === "navindex" || node.id === "navtop") return; // add this node to the nodeDataArray var name = getName(node); var data = { key: name, name: name }; dataArray.push(data); // add a link to its parent if (parentName !== null) { data.parent = parentName; } // find all children var l = node.childNodes.length; for (var i = 0; i < l; i++) { traverseDom(node.childNodes[i], name, dataArray); } return dataArray; } // Give every node a unique name function getName(node) { var n = node.nodeName; if (node.id) n = n + " (" + node.id + ")"; var namenum = n; // make sure the name is unique var i = 1; while (names[namenum] !== undefined) { namenum = n + i; i++; } names[namenum] = node; return namenum; } // When a Node is selected, highlight the corresponding HTML element. function nodeSelectionChanged(node) { if (node.isSelected) { names[node.data.name].style.backgroundColor = "lightblue"; } else { names[node.data.name].style.backgroundColor = ""; } }
想查看在线操作示例,。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢