思维导图插件jsMind的详细使用指南

 更新时间:2024年07月08日 09:20:09   作者:向小江  
jsMind是一个显示/编辑思维导图的纯的javascript类库,其基于HTML5的帆布进行设计.jsMind以BSD协议开源,这篇文章主要给大家介绍了关于思维导图插件jsMind的详细使用指南,需要的朋友可以参考下

1、下载jsMind

npm install jsMind --s

2、在需要使用的页面 引入css样式和js方法

import "jsmind/style/jsmind.css";
import jsMind from "jsmind/js-legacy/jsmind.js";

3、初始化jsMind

export default {
  data() {
    return {
      mind: {
        /* 元数据,定义思维导图的名称、作者、版本等信息 */
        meta: {
          name: "思维导图",
          author: "",
          version: "0.2",
        },
        /* 数据格式声明 */
        format: "node_tree",
        /* 数据内容 */
        data: {
          id: "root",
          topic: "jsMind",
          children: [
            {
              id: "easy", // [必选] ID, 所有节点的ID不应有重复,否则ID重复的结节将被忽略
              topic: "Easy", // [必选] 节点上显示的内容
              direction: "right", // [可选] 节点的方向,此数据仅在第一层节点上有效,目前仅支持 left 和 right 两种,默认为 right
              // expanded: false, // [可选] 该节点是否是展开状态,默认为 true
              children: [
                {
                  id: "easy8",
                  topic: "Easy to show",
                  children: [
                    { id: "open7", topic: "on GitHub" },
                    { id: "easy7", topic: "Easy to embed" },
                  ],
                },
                { id: "easy2", topic: "Easy to edit" },
                { id: "easy3", topic: "Easy to store" },
                { id: "easy4", topic: "Easy to embed" },
              ],
            },
            {
              id: "open",
              topic: "Open Source",
              direction: "right",
              // expanded: false,
              children: [
                { id: "open1", topic: "on GitHub" },
                { id: "open2", topic: "BSD License" },
              ],
            },

            {
              id: "powerful",
              topic: "Powerful",
              direction: "right",
              // expanded: false,

              children: [
                { id: "powerful1", topic: "Base on Javascript" },
                { id: "powerful2", topic: "Base on HTML5" },
                { id: "powerful3", topic: "Depends on you" },
              ],
            },
            {
              id: "other",
              topic: "test node",
              direction: "right",
              // expanded: false,

              children: [
                { id: "other1", topic: "I'm from local variable" },
                { id: "other2", topic: "I can do everything" },
              ],
            },
          ],
        },
      },
      options: {
        container: "jsmind_container", // [必选] 容器的ID
        editable: true, // [可选] 是否启用编辑
        theme: "primary", // [可选] 主题
        view: {
          engine: "canvas", // 思维导图各节点之间线条的绘制引擎
          hmargin: 20, // 思维导图距容器外框的最小水平距离
          vmargin: 20, // 思维导图距容器外框的最小垂直距离
          line_width: 2, // 思维导图线条的粗细
          line_color: "#ddd", // 思维导图线条的颜色
          hide_scrollbars_when_draggable: true,
        },
        layout: {
          hspace: 100, // 节点之间的水平间距
          vspace: 20, // 节点之间的垂直间距
          pspace: 20, // 节点与连接线之间的水平间距(用于容纳节点收缩/展开控制器)
        },
        shortcut: {
          enable: false, // 是否启用快捷键 默认为true
        },
        // editableDrag:true,
        // get_selected_node:function(val){
        //     this.selectedNode=val
        // }
      },
      jm: "",
      selectedNode: "",
      newNodeId: 1,
    };
  },
  mounted() {
    // 初始化
    this.jm = new jsMind(this.options);
    //渲染canvas
    this.jm.show(this.mind);
  },
};

4、页面绑定dom

 <div id="jsmind_container"></div>

5、效果图

6、内置方法

获取节点

获取根节点 :  this.jm.get_root()

根据 id 查找节点 : this.jm.get_node(nodeid)

获取选中的节点 : this.jm.get_selected_node()

查找相邻的上一个节点 : this.jm.find_node_before(node|nodeid) 

查找相邻的下一个节点 : this.jm.find_node_after(node|nodeid)

操作节点

选中节点 : this.jm.select_node(node)

收起子节点 : this.jm.collapse_node(node|nodeid)

展开子节点 : this.jm.expand_node(node|nodeid)

收起或展开子节点 :this.jm.toggle_node(node|nodeid) 方法可自动展开或收起子节点。

展开全部子节点 : this.jm.expand_all()

展开至指定层级 : this.jm.expand_to_depth(depth)

移动节点 :  this.jm.move_node(node|nodeid,beforeid)

启用编辑 : this.jm.enable_edit()

禁止编辑 : this.jm.disable_edit()

调整节点为编辑状态 : this.jm.begin_edit(node|nodeid)

调整节点为只读状态 : this.jm.end_edit(node|nodeid)

加减节点

添加节点 : this.jm.add_node(parent_node, nodeid, topic, data)

在指定位置前插入节点 : this.jm.insert_node_before(node_before, nodeid, topic)

在指定位置后插入节点 :  this.jm.insert_node_after(node_after, nodeid, topic)

删除节点及其子节点 : this.jm.remove_node(node|nodeid)

更新节点topic显示内容 : this.jm.update_node(nodeid, topic)

获取数据

获取元数据 :this.jm.get_meta() 。

获取指定格式的思维导图数据 : this.jm.get_data(data_format)

设置样式

设置主题 : this.jm.set_theme(theme)

设置背景色/前景色 : this.jm.set_node_color(nodeid, bgcolor, fgcolor)

设置字体 : this.jm.set_node_font_style(nodeid, size, weight, style)

设置背景图片 : this.jm.set_node_background_image(nodeid, image, width, height)

其他操作

清除节点的选中 : this.jm.select_clear() 。

判断节点是否可见 :  this.jm.is_node_visible(node)

总结

到此这篇关于思维导图插件jsMind的详细使用指南的文章就介绍到这了,更多相关思维导图插件jsMind内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js的flv视频播放器插件使用方法

    js的flv视频播放器插件使用方法

    FLV格式的视频很流行,有些网站程序不支持这个功能,我找到了一个强大FLV视频播放器插件,可以自定义播放器界面颜色,可设置播放器默认图片等等,推荐给大家。
    2015-06-06
  • js自定义事件代码说明

    js自定义事件代码说明

    在研发公展公用后台的时候,用了许多的技巧性的JS,最有代表性就是如下这一例子.
    2011-01-01
  • 支持移动端原生js轮播图

    支持移动端原生js轮播图

    这篇文章主要介绍了支持移动端原生js轮播图的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • javascript 定义初始化数组函数

    javascript 定义初始化数组函数

    有段javascript代码很困惑,经过不断的查资料,终于弄懂了!呵呵!
    2009-09-09
  • JavaScript框架是什么?怎样才能叫做框架?

    JavaScript框架是什么?怎样才能叫做框架?

    这篇文章主要介绍了JavaScript框架是什么?怎样才能叫做框架?,本文讲解了什么是 JavaScript 框架、JavaScript 框架的典型特性等内容,需要的朋友可以参考下
    2015-07-07
  • 原生js实现淘宝首页点击按钮缓慢回到顶部效果

    原生js实现淘宝首页点击按钮缓慢回到顶部效果

    本例将实现这样的一个效果:下拉到一定距离后按钮才显示出来,鼠标放到按钮上时,按钮背景会变成灰色,并且图标变成了文字。点击按钮缓慢回到顶部
    2014-04-04
  • Javascript玩转继承(一)

    Javascript玩转继承(一)

    最近一直在学Javascript,打算写一些文章,算做自己的学习心得吧,也可以算是学习笔记。没有系统的知识点,太基础的不想写,主要是写一些自己觉得有价值的地方
    2014-05-05
  • 解决js图片加载时出现404的问题

    解决js图片加载时出现404的问题

    这篇文章主要为大家详细介绍了解决js图片加载时出现404问题的方法,具有一定的参考价值,这方面有困惑的朋友可以参考一下
    2015-11-11
  • 同一个网页中实现多个JavaScript特效的方法

    同一个网页中实现多个JavaScript特效的方法

    这篇文章主要介绍了同一个网页中实现多个JavaScript特效的方法,实例分析了多个特效的实现原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 理解 javascript 中的函数表达式与函数声明

    理解 javascript 中的函数表达式与函数声明

    这篇文章主要介绍了理解 javascript 中的函数表达式与函数声明,需要的朋友可以参考下
    2017-07-07

最新评论