位置: 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)

  • 小天才电话手表怎么强制恢复出厂设置(小天才电话手表丢了关机怎么找回)

    小天才电话手表怎么强制恢复出厂设置(小天才电话手表丢了关机怎么找回)

  • 苹果教育优惠审核失败(苹果教育优惠审核不通过会通知你吗)

    苹果教育优惠审核失败(苹果教育优惠审核不通过会通知你吗)

  • 微信扫一扫能自动拍照吗(微信扫一扫能自动扣费吗)

    微信扫一扫能自动拍照吗(微信扫一扫能自动扣费吗)

  • 为什么抖音别人@我收不到(为什么抖音别人回复我的评论我看不到)

    为什么抖音别人@我收不到(为什么抖音别人回复我的评论我看不到)

  • 怎么封掉一个人的全民k歌号(怎么封掉一个人微信)

    怎么封掉一个人的全民k歌号(怎么封掉一个人微信)

  • 隔空手势没反应(隔空手势不能用了)

    隔空手势没反应(隔空手势不能用了)

  • 抖音头像有绿点什么意思(抖音头像有绿点有时显示在线没显示在线)

    抖音头像有绿点什么意思(抖音头像有绿点有时显示在线没显示在线)

  • 苹果手机下滑半个屏幕(苹果手机下滑半屏怎么关)

    苹果手机下滑半个屏幕(苹果手机下滑半屏怎么关)

  • qq登录不上怎么改密保手机(qq登录不上怎么办)

    qq登录不上怎么改密保手机(qq登录不上怎么办)

  • ip56防护等级是什么(防护等级ip6x)

    ip56防护等级是什么(防护等级ip6x)

  • 移动手机号停机多久会被注销如何恢复(移动手机号停机后多长时间会自动注销)

    移动手机号停机多久会被注销如何恢复(移动手机号停机后多长时间会自动注销)

  • 公交车刷码怎么弄的(公交车刷码怎么扣钱的)

    公交车刷码怎么弄的(公交车刷码怎么扣钱的)

  • word文档怎么变大页面(word文档怎么变成一页排版)

    word文档怎么变大页面(word文档怎么变成一页排版)

  • 苹果工程部丢失模式审核多久(苹果工程部联系方式)

    苹果工程部丢失模式审核多久(苹果工程部联系方式)

  • 字符型数据有哪些(字符型数据有哪些读写方式)

    字符型数据有哪些(字符型数据有哪些读写方式)

  • 后面四个摄像头的手机是哪一款(后面四个摄像头正方形的手机是哪一款)

    后面四个摄像头的手机是哪一款(后面四个摄像头正方形的手机是哪一款)

  • 华为10手机可以用电信卡吗(华为10手机可以换电池吗)

    华为10手机可以用电信卡吗(华为10手机可以换电池吗)

  • cm201-2恢复出厂密码(cm201-2恢复出厂设置会怎么样)

    cm201-2恢复出厂密码(cm201-2恢复出厂设置会怎么样)

  • 8p充满电一般要多少分钟(8p充满电一般要充多久)

    8p充满电一般要多少分钟(8p充满电一般要充多久)

  • 华为p30pro电话卡在哪里(华为p30pro电话卡槽打不开)

    华为p30pro电话卡在哪里(华为p30pro电话卡槽打不开)

  • 手机卡不用了微信怎么办(手机卡不用了微信号怎么找回密码)

    手机卡不用了微信怎么办(手机卡不用了微信号怎么找回密码)

  • 趣步怎么人脸认证不过(趣步怎么人脸认证登陆)

    趣步怎么人脸认证不过(趣步怎么人脸认证登陆)

  • 苹果11有home键吗(苹果11手机有home键吗)

    苹果11有home键吗(苹果11手机有home键吗)

  • 魅族16s和16spro区别(魅族16s和16spro怎么选)

    魅族16s和16spro区别(魅族16s和16spro怎么选)

  • 抖音限流多久可以恢复(抖音限流多久可以注销)

    抖音限流多久可以恢复(抖音限流多久可以注销)

  • 微信拉黑发消息对方能收到吗(微信拉黑发消息会显示什么)

    微信拉黑发消息对方能收到吗(微信拉黑发消息会显示什么)

  • 索尼手机如何辨别真假(索尼手机怎么看是不是翻新机)

    索尼手机如何辨别真假(索尼手机怎么看是不是翻新机)

  • WordPress正在执行例行维护,请一分钟后回来解决方法(wordpress运行缓慢)

    WordPress正在执行例行维护,请一分钟后回来解决方法(wordpress运行缓慢)

  • facebook/scribe · GitHub

    facebook/scribe · GitHub

  • 一般纳税人税收优惠政策有哪些2023年
  • 信用评估费用收费标准
  • 计提所得税是在结转损益之前还是之后
  • 新会计准则土地使用权摊销处理
  • 进口贴息对企业的好处
  • 12月份未计提的费用汇算清缴如何调整?
  • 律师要钱吗
  • 国企不交社保怎么办
  • 卖桶装水税率
  • 实收资本印花税是一年一交吗
  • 9万以下免征增值税政策
  • 积分抵扣所开的发票,也能在税前扣除吗?
  • 公司还没有成立,前期的费用怎么开发票呢
  • 建筑类企业可以申报高新吗
  • 劳务报酬所得的收入额
  • 借现金还银行怎么做账
  • 企业减免所得税
  • 坏账损失做哪个科目
  • 股权转让怎么办理才合理
  • 个税按工资薪金未按时申报的处罚规定
  • 一般纳税人十万以下免教育费附加
  • 办劳务发票需要什么资料
  • 建安企业核定征收改查账征收后怎么处理账目
  • 增值税专用发票的税率是多少啊
  • win10系统怎么设置锁屏壁纸
  • win10系统声音有杂音
  • 在建工程会计账务处理是否有利润表
  • 转出的进项税额是加还是减
  • linux配置与管理教程
  • win10怎么更换版本
  • 高薪技术企业研发费用标准
  • Element-UI--<el-switch>的@change回调函数的参数用法
  • 企业注销清算需要交什么税
  • php图片拼接
  • 为庆祝中秋而摆放的东西
  • framework启动
  • 超分辨率代码
  • 快递行业规矩
  • 借入资金用于生产经营
  • 小规模固定资产处置税率
  • 红字申请表开错了怎么办
  • 以非现金资产清偿债务的,债权人应当
  • 企业实际发生的与取得收入有关的支出
  • 跨年坏账准备转回
  • 用工会经费给员工发工资
  • 党费结算标准
  • linux mongodb创建用户
  • 收货和入库的区别
  • mysql修改密码的命令
  • 工资发放凭证原件指什么意思
  • 无进项可以开票么
  • 赔偿损失费用发票怎么开
  • 累计折旧的账务处理
  • 冲回多提的坏账准备会计分录
  • 政府会计制度收回多发工资
  • 办公室租赁费摊销分录
  • 公司只有收入没有支出违法吗
  • 养老保险和工伤失业保险不在一个时间
  • 其他收益结转到什么科目
  • 销售退货的会计账怎么处理
  • 无形资产的处置方式有哪些
  • 办公室做隔断多少钱
  • 生产性生物资产折旧计入什么科目
  • mysql存储过程菜鸟教程
  • xp关闭防火墙命令
  • xp系统关机没反应怎么办
  • xp系统桌面图标不见了,点什么都没用?
  • LINUX系统下MySQL 压力测试工具super smack
  • win10系统版本20h2
  • Win7防火墙怎么设置
  • linux中fdisk -l
  • 脚本添加crontab
  • javascript创建对象的几种方法
  • 用js实现冒泡排序
  • python 数据结构 算法
  • html5过渡的触发机制
  • Developing for Android, III: The Rules: Performance
  • div跟随滚动条移动
  • 深圳市国家税务局网站
  • 手机微信怎么预约
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设