GoJs中标题和缩略图使用技巧

 更新时间:2023年05月05日 11:14:30   作者:沅芷湘兰  
这篇文章主要为大家介绍了GoJs中标题和缩略图使用技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

在可视化图形中为了方便区分,需要给图形一个标题。可以在画布外面用html调整位置之后作为图形的标题,当然也可以在画布内部进行一个标题的绘制。在画布上的节点数据量比较大的时候,也需要用到缩略图对图形进行一个缩略显示并且拖动缩略图的框选来重点的画布中的部分数据。

标题的使用

还是以前面的数据为例,在原有数据的基础上给图形增加一个标题代码示例如下

//data
nodes: [
    { key: "1", color: "#99FFFF", text: "三国", figure: "Rectangle" },
    { key: "1-1", color: "#FF0000", text: "魏", figure: "Circle" },
    { key: "1-2", color: "#FFFF66", text: "蜀", figure: "Circle" },
    { key: "1-3", color: "#0000FF", text: "吴", figure: "Circle" },
  ],
  links: [
    {
      from: "1",
      to: "1-1",
    },
    {
      from: "1",
      to: "1-2",
    },
    {
      from: "1",
      to: "1-3",
    },
  ],
  //methods
  this.myDiagram.nodeTemplate = $$(
    go.Node,
    "Vertical",
    $$(
      go.Shape,
      "Circle",
      { width: 30, height: 30, name: "ICON" },
      new go.Binding("fill", "color"),
      new go.Binding("figure", "figure")
    ),
    $$(go.TextBlock,new go.Binding("text", "text"))
  );

随图形变化的标题

增加一个随图形变化的标题,可以通过location给标题一个厨师的定位

this.myDiagram.add(
    $$(go.Part, { location: new go.Point(0, -80) },
    $$(go.TextBlock, "三国争霸", { font: "bold 24pt sans-serif", stroke: "#67B73C" }))
);

由上面图形可以看出,在图像的滚动以及整体的放大缩小的过程中。图形的标题都会随着图形的本身进行同样的放大和缩小。相当于把标题当做了一个游离的文本节点。当然你也可以设置go.Part的属性selectable:false。这样你在拖动标题的时候,整个图形都会随着拖动。因此标题无法单独移动,删除。

不随图形变化的标题

实现不随图形变化的标题,最简单的方法是用修改html的样式和位置来实现图形的标题。此处我们要说到的是通过gojs来实现一个不随图形变化的标题。

this.myDiagram.add(
    $$(
      go.Part,
      { _viewPosition: new go.Point(900, 120), layerName: "Grid" },
      $$(go.TextBlock, "三国争霸", {
        font: "bold 24pt sans-serif",
        stroke: "green",
      })
    )
);
this.myDiagram.addDiagramListener("ViewportBoundsChanged", function (e) {
    e.diagram.commit(function (obj) {
      obj.parts.each(function (part) {
        if (part._viewPosition) {
          part.position = obj.transformViewToDoc(part._viewPosition);
          part.scale = 1 / obj.scale;
        }
      });
    });
});

由上面图形可以看出,在图像滚动和放大缩小的过程中。图形的标题位置和大小都不会发生改变。这样就可以始终在一个位置进行显示。其位置的展示类似于css的绝对定位。但是在图形滑动和放大缩小的过程中,可以看到标题虽然位置和大小没有发生变化。但是好像在过程中会发生闪烁。这是因为画布的底层为H5新增标签canvas,在canvas中是通过获取2d渲染上下文。在中间的内部元素发生变化的时候,不是部分元素的替换。其内部元素变化的过程是每次都会把画布中的所有元素擦掉,重绘。一直循环这个过程来实现画布中显示元素的变化。

缩略图的使用

在画布中的节点数量比较多的时候,我们又想着重的观看到某些重点的内容显示。这个时候我们就会对画布的整体进行放大,这样我们的可视区域就只能显示部分的画布内容。如果我们需要从左上角的可视图形展示切换到右下角的可视图形展示的过程中,如果用鼠标点击画布逐步拖动非常慢,效率很低。这个时候就需要使用到缩略图,在缩略图内部展示选择框就是我们可视区域的图形。我们可以拖动框选的矩形就可以看到画布的人和位置了。非常的方便。缩略图的使用方法如下

//html
<div id="myOverviewDiv"></div>
//methods
let myOverview =
    $$(go.Overview, "myOverviewDiv",
    { observed: this.myDiagram }
)

缩略图是使用go.Overview来实现的,因为其继承go.Diagram。所以使用方法基本一致。都是需要一个div容器进行初始化,然后其observed属性为图形的实例,在本例中是this.myDiagram

总结

在一个画布中,标题和缩略图的使用非常的普遍。一个能表述中可视化图形的功能。另外一个则是方便我们重点观察画布的某些元素。增加对可视化图形信息提取的效率。

以上就是GoJs中标题和缩略图使用技巧的详细内容,更多关于GoJs标题缩略图的资料请关注脚本之家其它相关文章!

相关文章

  • js对url进行编码解码的三种方式总结

    js对url进行编码解码的三种方式总结

    为一个字符串进行URL编码很容易,只需要调用encodeURI,传入要编码的字符串即可,而且实现的方法不止这一个,下面这篇文章主要给大家介绍了关于js对url进行编码解码的三种方式,需要的朋友可以参考下
    2023-02-02
  • 详解http访问解析流程原理

    详解http访问解析流程原理

    这篇文章主要介绍了详解http访问解析流程原理的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • js根据后缀判断文件文件类型的代码

    js根据后缀判断文件文件类型的代码

    这篇文章主要介绍了js根据后缀判断文件文件类型的代码,原来是获取文件的扩展名然后再判断属于什么类型,对于图片多个后缀的判断的实现也不是不错的思路,大家可以参考一下
    2020-05-05
  • JavaScript BOM详解

    JavaScript BOM详解

    这篇文章主要为大家介绍了JavaScript BOM,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 原生js实现选项卡功能

    原生js实现选项卡功能

    本文主要介绍了原生js实现选项卡功能的实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • layui 数据表格 点击分页按钮 监听事件的实例

    layui 数据表格 点击分页按钮 监听事件的实例

    今天小编就为大家分享一篇layui 数据表格 点击分页按钮 监听事件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • echarts提示框tooltip被遮挡的解决办法分享

    echarts提示框tooltip被遮挡的解决办法分享

    这篇文章主要给大家介绍了关于echarts提示框tooltip被遮挡的解决办法, 在制作图表中,发现有时候tooltip会被线条遮挡或者被柱子折线遮挡,这种情况会偶尔出现,需要的朋友可以参考下
    2023-08-08
  • javascript中innerHTML 获取或替换html内容的实现代码

    javascript中innerHTML 获取或替换html内容的实现代码

    这篇文章主要介绍了javascript中innerHTML 获取或替换html内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • JavaScript 动态将数字金额转化为中文大写金额

    JavaScript 动态将数字金额转化为中文大写金额

    JavaScript 将数字金额转化为中文大写金额的函数
    2009-05-05
  • Javascript防止图片拉伸的自适应处理方法

    Javascript防止图片拉伸的自适应处理方法

    这篇文章主要给大家介绍了关于利用Javascript防止图片拉伸的自适应处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12

最新评论