jtopo 拓扑图的简单使用

官网

jtopo 一个好用的交互式HTML5图形软件

下载

jtopo-npm安装包-Javascript文档类资源-CSDN下载

引入

将 jtopo-1.3.8_trial-esm-min.js 文件放到assets文件下 import 引入

import {
	Stage,
	Layer,
	Node,
	Link,
	FoldLink,
	Graph,
	TreeLayout,
	TipNode,
	TextNode,
	AutoFoldLink,
	FlexionalLink,
	CircleNode,
	HtmlImage,
} from "@/assets/js/jtopo-1.3.8_trial-esm-min.js";

用官网上那种npm的引入方式,我用vite打包后部署就报 Maximum call stack size exceeded

使用

stage顶层对象可以包含多个layer,每个layer是分开渲染的,例如:可以把需要动画的内容放到一个单独的layer里面,可以减少消耗

var stage = new Stage("divId"); // 顶层对象(Stage)
var layer = new Layer(); // 层对象(Layer) Layer 是一个抽象对象,默认是完全透明的,上层对象为Stage.
layer.css({  // 设置颜色
	background: "rgb(33,38,41)",
});
layer.zoom(0.65, 0.65); // 设置缩放

stage.addChild(layer); // 把layer添加到stage中
stage.setMode("drag"); // 设置场景拖拽
stage.show(); // 显示

添加一个块

let info = new Node("", 0, 0, 170, 230); // 参数依次为: 块附带的文本, 坐标x, 坐标y, 宽度, 高度
layer.addChild(info); // 将块添加到layer

添加文字

let text = new TextNode("123\n\n456", 50, 5, 100, 50); // 传参与Node相同 如果文字需要换行可以使用 \n
layer.addChild(text); // 添加

将两个块连线

let link = new Link("", parentNode, fromNode, "cb", "ct"); // 参数依次为: 线带的文字、开始块、结束块、开始块连线位置、结束块连线位置

layer.addChild(link); // 将线添加到layer

把html作为图片使用, 这里注意传的是字符串而不是dom节点,样式需要使用行内样式,单独写css没有效果

var htmlImage = new HtmlImage(
				proxy.$refs.ammeterInfo.outerHTML,
				170,
				230
			); // 参数依次为:dom节点的文本、宽度、高度

let info = new Node("", 0, 0, 170, 230);
info.setImage(htmlImage);
layer.addChild(info);

Node、TextNode、Link都是有 css 和 addChild 方法的,例如Node中添加一个TextNode,那么TextNode的位置就是相对于Node的;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓_枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值