位置: IT常识 - 正文

vue使用jsMind(思维导图)(vue 使用js)

编辑:rootadmin
vue使用jsMind(思维导图) 前言

推荐整理分享vue使用jsMind(思维导图)(vue 使用js),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jsmind vue,js.vue,js.vue,vue jsmind,vue 使用jsx,vue 使用js,vue jsmind,vue jsmind,内容如对您有帮助,希望把文章链接给更多的朋友!

jsMind 是一个显示/编辑思维导图的纯 javascript 类库,其基于 html5 的 canvas 进行设计。

我们使用它可能需要在网页上单纯的使用这种图样的效果,而其他交互却是自定义的,我这边选择的是jsMind 与 网上的一个jsmind.menu.js(右键菜单)。

开始安装npm i jsmind --save使用import 'jsmind/style/jsmind.css'import jsMind from 'jsmind/js/jsmind.js'window.jsMind = jsMindconst { init, reBuild } = require('./jsmind.menu.js')const { resetMind } = require('./jsResetMind.js')init(jsMind)resetMind(jsMind)...

注: 常规用法看网上jsMind。

实例修改

在使用jsMind感觉有一些问题(不知道是不是我这边电脑的问题)以及满足我的需求做了一些改变。

隐藏和打开样式居下

处理方式(增加样式):

// 让其居中jmexpander { display: flex; justify-content: center; align-items: center;}隐藏和打开 滑动条有问题

处理方式(重构内部方法):

打开 https://gitee.com/314079846/jsmind/blob/master/js/jsmind.js 找到这个使用修改宽度和高度的方法进行重构!!

;(function ($w, mind) { var Jm = $w[mind] Jm.view_provider.prototype.expand_size = function () { var min_size = this.layout.get_min_size() var min_width = min_size.w + this.opts.hmargin * 2 var min_height = min_size.h + this.opts.vmargin * 2 // 修改这里 每一个大概减去20左右 var client_w = this.e_panel.clientWidth - 20 var client_h = this.e_panel.clientHeight - 20 if (client_w < min_width) { client_w = min_width } if (client_h < min_height) { client_h = min_height } this.size.w = client_w this.size.h = client_h } if (typeof module !== 'undefined' && typeof exports === 'object') { module.exports = { resetMind: function (opt) { Jm = opt }, } }})(window, 'jsMind')jsmind.menu.js 中 增加自定义菜单并自定义函数

jsmind.menu.js 中 寻找到定义menu的地方,增加custom自定义属性

注: 自定义的东西肯定需要自定义一个类型或者唯一性的key,让代码知道我点击的是哪一个,所以还需要处理点击事件。

jsmind.menu.js 中 增加 菜单点击事件自定义

寻找对应点击事件_create_menu_item 与 _get_injectionList. 在里面增加key属性。

即:

后面使用方式(options):

每一个节点样式根据节点数据变化的vue使用jsMind(思维导图)(vue 使用js)

目前的jsMind是设置了主题,不过是不满足我的需求,还有每一个节点的样式设置了常用的background、width等,需要自己的话得重构设置style方法

在里面添加自己需要的样式。

节点鼠标右键位置

鼠标大概在红圈位置右键,放大缩小的时候会位置有问题。

解决方式:

jsmind.menu.js中修改menuStl增加布局样式 'transform-origin': '0 0'

每个节点对应不同的菜单

目前插件是统一每一个是一样的menu。

修改方式:

每一个节点可定义一个dataClass 属性,不写是未定义不显示任何菜单,名字自定义取对应的menu中的injectionList数组增加dataClass属性jsmind.menu.js中_event_contextMenu方法修改每一个menu-item的样式是否显示,同时_create_menu_item方法增加menuItem的class。放大缩小数据多了左边会显示不出来

看图:

解决方式:

setZoom方法

Jm.view_provider.prototype.setZoom = function (zoom) { if (zoom < this.minZoom || zoom > this.maxZoom) { return false } this.actualZoom = zoom for (var i = 0; i < this.e_panel.children.length; i++) { this.e_panel.children[i].style.transform = 'scale(' + zoom + ')' this.e_panel.children[i].parentNode.style['padding-left'] = (zoom * this.e_panel.children[i].parentNode.clientWidth - this.e_panel.children[i].parentNode.clientWidth) / 2 + 'px' // this.e_panel.children[i].style['transform-origin'] = '0 0' } this.show(true) return true }

第一种: 增加 paddingLeft样式

this.e_panel.children[i].parentNode.style['padding-left'] = (zoom * this.e_panel.children[i].parentNode.clientWidth - this.e_panel.children[i].parentNode.clientWidth) / 2 + 'px'

第二种: 设置 transform-origin

this.e_panel.children[i].style['transform-origin'] = '0 0'实现效果

demo效果

总结

为了实现我的效果,又不太想用庞大的组件和插件,jsMind是非常合适的选择,可重构、可扩展。感谢jsMind和jsmind.menu.js的分享者!

参考

jsMind(https://gitee.com/314079846/jsmind/tree/master)

欢迎各位圈友关注,一起浪~

本文链接地址:https://www.jiuchutong.com/zhishi/292418.html 转载请保留说明!

上一篇:vite环境变量配置(vericut9.0环境变量)

下一篇:Windows11安装Ubuntu20.04双系统,傻瓜教程(windows11安装ubuntu20.04)

  • 推广营销的方法(营销常用的推广方法有哪些)

    推广营销的方法(营销常用的推广方法有哪些)

  • 小翼管家视频怎么保存到手机(小翼管家视频怎么导出)

    小翼管家视频怎么保存到手机(小翼管家视频怎么导出)

  • 谷歌浏览器打开就崩溃怎么办(谷歌浏览器打开是2345浏览器)

    谷歌浏览器打开就崩溃怎么办(谷歌浏览器打开是2345浏览器)

  • 浏览器不能打开的原因如下:一、网络设置的问题,二、DNS服务(浏览器不能打开网页怎么办)

    浏览器不能打开的原因如下:一、网络设置的问题,二、DNS服务(浏览器不能打开网页怎么办)

  • 电脑结束进程后白屏了怎么办(电脑结束进程后白屏了)

    电脑结束进程后白屏了怎么办(电脑结束进程后白屏了)

  • bootcamp可以删除吗(bootcamp可以删除吗 windows)

    bootcamp可以删除吗(bootcamp可以删除吗 windows)

  • 怎样退群不被群主和管理员知道(怎样退群不被群里人知道)

    怎样退群不被群主和管理员知道(怎样退群不被群里人知道)

  • 安卓手机系统怎么降版本(安卓手机系统怎么看)

    安卓手机系统怎么降版本(安卓手机系统怎么看)

  • 电脑加硬盘需要重做系统吗(电脑加硬盘需要重新分区吗)

    电脑加硬盘需要重做系统吗(电脑加硬盘需要重新分区吗)

  • 什么叫对方账号异常(什么叫对方账号为新加好友)

    什么叫对方账号异常(什么叫对方账号为新加好友)

  • 苹果id可以改名字吗(苹果怎么更改id)

    苹果id可以改名字吗(苹果怎么更改id)

  • 无线网络光信号亮红灯是什么原因(无线网络光信号不亮怎么回事)

    无线网络光信号亮红灯是什么原因(无线网络光信号不亮怎么回事)

  • 常见音频格式有哪些(常见的音频格式有哪些?各有什么特点、用在什么地方?)

    常见音频格式有哪些(常见的音频格式有哪些?各有什么特点、用在什么地方?)

  • 淘宝直播被拉黑是什么意思(淘宝直播被拉黑了拍不了衣服吗)

    淘宝直播被拉黑是什么意思(淘宝直播被拉黑了拍不了衣服吗)

  • 打电话对方老关机怎么回事(打电话对方总是关机是不是被拉黑了)

    打电话对方老关机怎么回事(打电话对方总是关机是不是被拉黑了)

  • 抖音保存视频后在哪看(抖音保存视频后如何删除抖音两个字)

    抖音保存视频后在哪看(抖音保存视频后如何删除抖音两个字)

  • nova5pro尺寸(nova5Pro尺寸大小)

    nova5pro尺寸(nova5Pro尺寸大小)

  • soul举报人对方能看到吗(soul举报人对方会封号吗)

    soul举报人对方能看到吗(soul举报人对方会封号吗)

  • vivo怎么用sd卡的内存(vivo 怎么用sd卡)

    vivo怎么用sd卡的内存(vivo 怎么用sd卡)

  • 手机qq怎么开通黑钻(手机qq怎么开通qq邮箱)

    手机qq怎么开通黑钻(手机qq怎么开通qq邮箱)

  • 抖音忘记账号密码怎么办(抖音账号密码忘记,记得抖音号)

    抖音忘记账号密码怎么办(抖音账号密码忘记,记得抖音号)

  • 充电宝休眠是什么状态(充电宝进去休眠状态怎么办)

    充电宝休眠是什么状态(充电宝进去休眠状态怎么办)

  • 苹果11有屏幕指纹吗(苹果11有屏幕指纹功能吗)

    苹果11有屏幕指纹吗(苹果11有屏幕指纹功能吗)

  • 钉钉怎样修改员工姓名(钉钉怎样修改员工个人信息)

    钉钉怎样修改员工姓名(钉钉怎样修改员工个人信息)

  • 蓝盘 薄盘 区别(蓝盘好不好)

    蓝盘 薄盘 区别(蓝盘好不好)

  • LIO-SAM学习与运行测试数据集

    LIO-SAM学习与运行测试数据集

  • 税务稽查以前年度进项税额转出
  • 所得税汇算申报完之后可以修改吗
  • 调整以前年度少计提的工资
  • 失业稳岗补贴怎么记账
  • 印花税是按开票收入申报的吗
  • 会计为什么要计折旧费
  • 出口退税不退税主要适用于
  • 小微企业增值税优惠政策最新2023
  • 公司宿舍房租
  • 暂估商品年底未入库汇算清缴后处理方法
  • 把材料退给客户怎么处理
  • 会计账簿的定义及其作用
  • 私人转公账可以开发票吗
  • 小规模企业申请破产流程
  • 补去年的税款怎么做账
  • 帮你用好小微企业所得税优惠的7个案例
  • 12月份奖金怎么扣个税
  • 本月报销能用下月报销吗
  • 出口佣金支付
  • 营改增后的劳务费怎么开
  • 餐饮业现金流
  • 收到几分钱的认证费怎么做账
  • 事业单位服务收入怎么做账
  • 一次性所得个人所得税缴纳标准
  • isass是什么程序
  • 从价计征房产税如何计算
  • 现金流方法
  • 一头公牛和一头母牛,答五个字
  • 货物品种不太多而数量又相对较大
  • 劳务公司给包工头打款备注写什么
  • 浅谈php中的错误处理方法
  • 发生广告费的会计分录
  • thinkphp项目怎么运行
  • 定期定额和核定征收哪个好
  • 模型训练的过程是什么过程
  • vue3动态路由权限
  • vue实现回车登录
  • 车辆上牌费用会涨吗
  • 不得免征和抵扣税额是什么意思
  • 营业外支出会计科目
  • wordpress删除修订版本
  • 固定资产被替换的账面原值怎么算
  • 收回以前年度多发奖金分录
  • 在建工程核算的内容有哪些
  • 应交增值税进项税额为什么记借方
  • 自产货物用于抵偿债务
  • 押金和租金
  • 施工一个月多少钱
  • 事业单位库存物品
  • 存货周转次数越高好还是越低好
  • 销售 返利
  • 建筑企业结转成本能不能不分人材机
  • 进行长期股权投资的目的
  • 预付账款属于哪一类账户
  • 会计凭证装订时间法律规定
  • 触发器中instead of
  • XP系统怎么删除密码
  • xp系统如何去掉开机登陆界面
  • centos如何安装软件
  • win8.1使用教程
  • neoCopy.exe - neoCopy是什么进程 有什么用
  • win7系统显卡驱动怎么安装
  • Linux下使用httpry来嗅探HTTP流量教程
  • windows7 sp1升级包
  • jquery技巧
  • 多媒体播放器使用方法
  • Android性能优化工具
  • python作业题目
  • javascript definitive guide
  • 批处理模式的例子
  • js读取文件大小
  • 全国低保查询系统网站
  • 广东省电子税务局app下载手机版
  • 税务部门督查内审部门监督检查的内容
  • 职工教育经费可以结转吗
  • 定额发票是如何开具的
  • 青岛市市南区税务局第一税务所
  • 四川国税网上申报大厅
  • 税务局发票邮寄需要多久
  • 农产品进项税额核定扣除办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设