记数据血缘前端中panzoom初始化缩放比例的问题探索

news2024/10/7 4:27:53

0. 背景

有人问我 血缘前端vue版本能不能改初始缩放比例,节点太多的情况下初始缩放比例太大导致无法看清全图,需要渲染完之后手动缩放才能。
当时编写代码的时候使用 panzoom这个库来完成 血缘图的缩放工作。
使用的panzoom版本是: “panzoom”: “^9.4.1”(@panzoom/panzoom)

1. 网上查到了无效方法

在网上查了一下,有这两种写法

// 1.5 放大缩小倍率
const panzoom = Panzoom(elem,{ contain: ‘outside’, startScale: 1.5 })

panzoomElement.panzoom({
minScale: 0.7,
maxScale: 2,
startTransform: ‘scale(0.7)’,
duration: 100,
contain: ‘automatic’,
});

基本思路是在初始化panzoom对象时直接配置相关 options。尝试后发现失败,猜测可能我用的是@panzoom/panzoom,其他人用的不是相同lib(他人博文未给出具体的名字)

2.自行查看源码 ,找到能用的方案

直接查询panzoom的源码,

2.1手动调用方法

pan.zoomTo(0,0,0.5)

这样的方法,初始化panzoom后,主动调用一次缩放方法到指定比例(上例是2倍),觉得有点stupid,而且由于是初始化完成之后再缩放。前端效果会先正常比例再缩放,节点闪一下
在这里插入图片描述

2.2 初始化参数

之后发现panzoom的初始化 options里有initialZoom参数,配置之后仍有上述闪烁问题,没有解决方案

const pan = panzoom(mainContainer,{
initialZoom:0.5,
minZoom: 0.5,
maxZoom: 2,
});

3. github查看lib原作者

为了解决闪烁问题,然后我直接去github查看了panzoom源库(https://github.com/anvaka/panzoom)

在closed issue 中,也发现了 16年一个Setting an initial zoom 相关issue,16年作者给出的方案也是2.1那种,只不过作者使用的是zoomabs()这个方法。

20年,有人pr了一个带初始缩放参数的panzoom版本,最终作者在9.3.0的版本进行了merged。使用方法也是2.2中提到的
在这里插入图片描述闪烁问题没找到,不过官方方法也是这个的话,那就到这里吧

4.其他

查看源码时,发现默认的缩放比例参数(scale)在Transform 这个对象,这个对象又是PanZoomController的参数,PanZoomController又是PanZoomOptions一个可选的参数

如果能顺着这个链路改scale应该是可行的,可惜尝试了下js不太熟练失败了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nacos启动失败(解决方法汇总)

安装nacos 报错 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name instanceOperatorClientImpl defined in URL [jar:file:/H:/nacos/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.0.3.jar!/com/alibaba/na…

【数据结构与算法】哈希表2:四数相加II 赎金信 三数之和 四数之和

文章目录今日任务1.Leetcode454.四数相加II(1)题目(2)思路(3)代码演示2.Leetcode383.赎金信(1)题目(2)思路(3)暴力解法(4&…

算法刷题日志——移除元素,双指针

文章目录删除有序数组中的重复项[删除有序数组中的重复项 II](https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/)移除元素[283. 移动零](https://leetcode.cn/problems/move-zeroes/description/)[844. 比较含退格的字符串](https://leetcode.cn/problem…

数仓、数据湖、湖仓一体、数据网格的探索与研究

第一代:数据仓库 定义 为解决数据库面对数据分析的不足,孕育出新一类产品数据仓库。数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策和信息的全局共享。 数…

【Linux系统】认识操作系统和操作系统如何进行管理以及进程相关状态

进程概念1 认识冯诺依曼体系结构1.1 冯诺依曼体系结构存储器的作用2 操作系统(Operator System,OS)2.1 OS如何进行管理3 进程3.1 OS管理进程:先描述再组织3.2 描述进程-PCB3.3 查看进程3.4 通过系统调用获取进程标识符3.5 通过系统调用创建子进程——for…

vue+echarts:柱状图横向展示和竖向展示

第021个点击查看专栏目录本示例是显示柱状图,分别是横向展示和纵向展示。关键是X轴和Y轴的参数互换。 文章目录横向示例效果横向示例源代码(共81行)纵向示例效果纵向示例源代码(共81行)相关资料参考专栏介绍横向示例效…

什么是真正的骨传导耳机,骨传导耳机原理

骨传导耳机大多采用后挂耳/夹耳佩戴方式,但现在很多人分不清哪些是骨传导耳机,哪些是气传导耳机。看完这篇教会你辨别哪些是真正的骨传导耳机。 骨传导耳机采用固体传声方式,整个耳机机身都没有传声音孔的设计,主要通过耳机振子发…

Retrofit+Hilt后端请求小项目3--Retrofit代码完善

目录ApiConstants定义实体类定义 API 接口定义 Repository定义 ApiModule定义 Application定义 ViewModelApiConstants 这一块存放 API 常量,即后端服务器 BASE_URL,以及对应的后缀 URL 代码清单:data/api/ApiConstants.kt object ApiConsta…

最纯净-Ubuntu系统下如何卸载kubernetes(k8s)-2023最新

首先,如果是卸载k8s-1.24以上版本,需要单独卸载containerd: sudo apt-get purge --auto-remove containerd.io1. 步骤 其他步骤如下: 执行命令: kubeadm reset -fsudo apt-get purge --auto-remove kubernetes…

港科夜闻|广东省省长王伟中会见香港科技大学访问团

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、广东省省长王伟中会见香港科技大学访问团。2月17日,广东省省长王伟中先生在广州与香港科大校董会主席廖长城先生、校董会副主席杨佳锠教授、校长叶玉如教授就加强教育合作、科技创新等进行深入交流。王伟中先生表…

华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

特征与处理-sklearn归一化、标准化、缺失值处理

目录 特征的预处理 归一化 标准化 缺失值 特征的预处理 特征处理定义:通过特定的二统计方法(数学方法)将数据转换成算法要求的数据 归一化 sklearn归一化API:sklearn.preprocessing.MinMaxScaler from sklearn.preprocessing i…

【Selenium学习】Selenium 总结

1.Selenium 简介Selenium 经历了三个大版本,Selenium 1.0、Selenium 2.0 和 Selenium 3.0。Selenium 不是由单独一个工具构成的,而是由一些插件和类库组成的,这些插件和类库有其各自的特点和应用场景。Selenium 1.0 家族关系如下图所示。1.1 …

华为OD机试 - 数组排序(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

我说我为什么抽不到SSR,原来是这段代码在作祟...

本文是龚国玮所写,熊哥有所新增修改删减,原文见文末。 我说我为什么抽不到SSR,原来是加权随机算法在作祟 阅读本文需要做好心理准备,建议带着深究到底的决心和毅力进行学习! 灵魂拷问 为什么有 50% 的几率获得金币&a…

【数据结构】顺序表和链表的区别和联系(详解)

顺序表和链表的区别(详解) 文章目录顺序表和链表的区别(详解)前言一、顺序表和链表的关系二、顺序表1.优点2.缺点三、链表1.优点2.缺点四、区别表格总结前言 本文给大家介绍顺序表和链表的各自的优缺点和区别与联系,结…

华为OD机试 - 事件推送(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

20230222 【梳理】肿瘤检测 预处理+ML+DL

一、预处理 1、形态学【使图像中的重要部分更加可见,并消除MRI图像的琐碎部分。】 形态学操作是一种非线性操作,涉及在二值图像上移动一个窗口(或结构元素),以一种方式帮助增长图像(膨胀)或缩小图像(侵蚀)[30]。这种预处理技术更有用,特别是当MRI图像中存在不需要

基于计算机视觉的智慧养老系统

基于计算机视觉的智慧养老系统 Intelligent elderly care system based on computer vision 基于计算机视觉的智慧养老系统通过(模拟)多组摄像头实时拍摄到的画面,用计算机视觉技术实时分析老人的情感、是否有人摔倒、是否有人闯入禁止区域…

我的 System Verilog 学习记录(2)

引言 从本文开始,就开始系统学习 System Verilog ,不只是语法,还有结合 Questa Sim 的实际编程练习、Debug。 本文简单介绍 System Verilog 语言的用途以及学习的必要性。 前文链接: 我的 System Verilog 学习记录&#xff08…