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

  • 抖音怎么关掉在线状态(抖音怎么关掉在线时间)

    抖音怎么关掉在线状态(抖音怎么关掉在线时间)

  • 腾讯付费电影怎么赠送给朋友看(腾讯付费电影怎么拉别人一起看)

    腾讯付费电影怎么赠送给朋友看(腾讯付费电影怎么拉别人一起看)

  • adobe bridge干什么的

    adobe bridge干什么的

  • 微信自动回复在哪里(微信自动回复在哪里关闭)

    微信自动回复在哪里(微信自动回复在哪里关闭)

  • 微信积分商城在哪里(微信积分兑购商城)

    微信积分商城在哪里(微信积分兑购商城)

  • 苹果xr有时候会出现屏幕按不动(苹果xr有时候会自动重启)

    苹果xr有时候会出现屏幕按不动(苹果xr有时候会自动重启)

  • 芒果tv投屏是怎么快进

    芒果tv投屏是怎么快进

  • ipad发邮件收不到(ipad邮件无法发送邮件)

    ipad发邮件收不到(ipad邮件无法发送邮件)

  • 抖音如何增加粉丝(抖音如何增加粉丝量和关注度)

    抖音如何增加粉丝(抖音如何增加粉丝量和关注度)

  • 云助理账号是什么(云助理注册账号)

    云助理账号是什么(云助理注册账号)

  • 苹果11屏幕失灵是什么原因(苹果11屏幕失灵乱跳的原因以及解决方法)

    苹果11屏幕失灵是什么原因(苹果11屏幕失灵乱跳的原因以及解决方法)

  • a1633是什么版本(苹果a1633是什么版本)

    a1633是什么版本(苹果a1633是什么版本)

  • 1t是多少g内存(1t有多大内存)

    1t是多少g内存(1t有多大内存)

  • 微博信用积分80在哪里看(微博信用积分怎么看)

    微博信用积分80在哪里看(微博信用积分怎么看)

  • 平板上的软件停运怎么修复(平板的软件停止运行怎么办)

    平板上的软件停运怎么修复(平板的软件停止运行怎么办)

  • 抖音举报别人会显示不(抖音举报别人会通知对方吗)

    抖音举报别人会显示不(抖音举报别人会通知对方吗)

  • 纯净acg音效是什么效果(纯净acg音效是什么意思?)

    纯净acg音效是什么效果(纯净acg音效是什么意思?)

  • 天猫精灵支持电视型号(天猫精灵支持电信网络吗)

    天猫精灵支持电视型号(天猫精灵支持电信网络吗)

  • ps饱和度怎么调(ps哪里调饱和度)

    ps饱和度怎么调(ps哪里调饱和度)

  • 华为屏幕上的圆圈怎样取消(华为屏幕上的圆点)

    华为屏幕上的圆圈怎样取消(华为屏幕上的圆点)

  • 电话手表sim卡怎么装(电话手表电话卡)

    电话手表sim卡怎么装(电话手表电话卡)

  • 路由器重启开关在哪里(路由器怎样恢复出厂设置)

    路由器重启开关在哪里(路由器怎样恢复出厂设置)

  • 苹果7哪里看诊断与用量(苹果7p怎么看)

    苹果7哪里看诊断与用量(苹果7p怎么看)

  • 如何制作小影微视频(怎样制作小影)

    如何制作小影微视频(怎样制作小影)

  • 快手加入黑名单对方还会看到你吗(快手加入黑名单后对方能看见作品吗)

    快手加入黑名单对方还会看到你吗(快手加入黑名单后对方能看见作品吗)

  • 建立无法轻易删除的文件夹(建立无法轻易删除的数据)

    建立无法轻易删除的文件夹(建立无法轻易删除的数据)

  • 怎么计提坏账准备到本年利润
  • 出让土地缴纳的契税怎么账务处理
  • 政府补贴营业外收入所得税汇算清缴需要调增吗
  • 小规模旅行社差额征税的账务处理
  • 房地产增值税怎么算举例说明
  • 合伙企业个人所得税怎么申报
  • 转让折旧怎么算
  • 应交税费应交增值税的三级科目有哪些
  • 服务业暂估成本分录
  • 商品房买卖合同没有约定逾期交房违约金
  • 质量问题产生的影响
  • 借款存入银行会计分录
  • 退休人员返聘工资交个人所得税标准
  • 日用品增值税税率
  • 营改增后土地使用税计入什么科目
  • 普票和专票的税率分别是多少
  • 财务费用为负数怎么结转
  • 会计速动比率计算公式
  • 个税申报系统的备份保留几份数据
  • 进项是普票销项是专票,怎么交税
  • 找果农采购水果没有发票怎么办
  • 非盈利组织捐赠现金支需要什么资料
  • 打开win10 defender
  • 未抵扣的固定资产处理
  • 转出未交增值税什么意思
  • 现金付款凭证是什么意思
  • php未定义数组下标0
  • 资产接收范围的确定
  • PHP:mcrypt_generic_deinit()的用法_Mcrypt函数
  • 一亩地是多少平方?
  • uni-app 怎么实现页面不跳转依旧可以传数据
  • PHP curl 或 file_get_contents 获取需要授权页面的方法
  • 小规模纳税人是否可以开专票
  • 图像质量评价指标及方法 图像工程
  • php执行流程
  • 残保金政策建议
  • 下列项目的进项税额可从销项税
  • 如何用python制作人工智能
  • vue全家桶介绍
  • is-l命令
  • php curl_init
  • Python中如何定义一个变量
  • 豪华车消费税的计算公式
  • 员工体检费计入福利费吗
  • 员工出差的费用计入什么科目
  • mysql的基本介绍
  • 印花税核定征收比例取消了吗
  • 商业承兑汇票贴现率
  • access 200
  • c#调用excel
  • mysql误删数据
  • 如何免费用别人家的wifi
  • 个人所得税规定的免纳个人所得税的范围
  • 以前年度出口退税未收汇
  • 计提投资性房地产折旧会计科目
  • 银行结息交易是扣钱的意思吗
  • 怎么做好流水账
  • 减少实收资本会影响资产吗
  • 企业可以不交残保金吗
  • 不含税价格怎么算公式(1+3%)
  • windows8开机蓝屏
  • win8系统怎么重新安装系统
  • 升级win10后
  • jquery 点击按钮
  • cocos2dx schedule
  • 用什么命令查看linux启动信息
  • unity全屏
  • node stream(流)有哪些?
  • android保存网络图片
  • Unity3D中的事件处理
  • Firefox window.close()的使用注意事项
  • 孙其功陪你学之——unity3d进程暂停
  • django批量上传图片
  • 运用python编写程序
  • 小微企业不交所得税
  • 四川税收总额
  • 江苏国税电子税务局官网
  • 自然人电子税务局怎么设置申报密码
  • 国家税务局增值税发票平台
  • 水库淹没区耕地补偿标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设