@antv/x6 要求不显示水平滚动条,并且如果水平方向上显示不全的节点,则要求自动显示全部节点,垂直方向可以出现滚动条来滚动显示所有的节点。

本文主要是介绍@antv/x6 要求不显示水平滚动条,并且如果水平方向上显示不全的节点,则要求自动显示全部节点,垂直方向可以出现滚动条来滚动显示所有的节点。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、要求一共有二个:

  • 要求一:水平滚动条不显示。之前的文章中就已经发表过,可以用Scroller的className来处理。
  • 要求二:水平方向上显示全部节点,如果有显示不全的节点(即看不到的节点)要求能够显示出来,垂直方向的滚动条可以显示出来,然后用滚动条来滚动显示下面看不到的节点。

2、思路:

  • 思路一:水平不显示滚动条。vue3 @antv/x6 使用画布滚动条以后的几个问题的解决_antv x6超出屏幕滚动条-CSDN博客
graph.use(new Scroller({enabled: true,padding: {top: 0,right: 0,bottom: 0,left: 0,},pageVisible: false,pageBreak: false,autoResize: true,className: 'scrollerCss',}),);
  • 思路二:水平方向上显示所有节点。

可以通过节点的视口的坐标与容器的宽度进行比较,查看是否已经超过,如果超过,就需要重新处理容器的rect,这样就可以了。

// 自定义函数来检测节点是否完全显示function isNodeCompletelyVisible(node) {const bbox = node.getBBox(); // 获取节点的包围盒// const viewport = graph.getContentArea(); // 获取画布视口// console.log(bbox.x, viewport.x, bbox.right, viewport.x + viewport.width);// 检查节点的四个角是否都在视口内return (// bbox.x > viewport.x &&// bbox.y > viewport.y &&// bbox.right < viewport.x + viewport.width &&// bbox.bottom < viewport.y + viewport.height// bbox.x > viewport.x && bbox.right > viewport.x + viewport.widthbbox.x > unref(containerWidth));}

注掉的部分是baidu ai生成的代码,实测还是有些问题,与我们项目的要求还是不太相符。

通过实测,发现bbox.x > unref(containerWidth),这样就会返回true,那么我们就要重新设置rect来达到显示所有节点的效果。

const containerWidth = ref(0);
function resizeFitContent() {let nodes = graph.getNodes();let reqResize = false;nodes.forEach((node) => {if (!reqResize) {reqResize = isNodeCompletelyVisible(node);}});if (reqResize) {let rect = graph.getContentArea();// console.log(rect.x, rect.y, rect.width, rect.height);//下面是我们实测的padding与rect,需要根据自己项目的实际情况进行调整。graph.zoomToRect({x: rect.x - 10,y: rect.y,width: rect.width + 20,height: viewState.height - 100,},{padding: {top: '0px',right: '30px',bottom: '0px',left: '30px',},},);}

3、最好上张图,来明确下效果:

一开始只显示了四个节点,然后我们通过检测要不要自动调整以适应画布,然后看到所有的节点。

通过上面的设置,最好我们就可以看到所有的节点,如果屏幕够大,就不需要调整了。

4、上面不仅是一个显示所有节点的实现,也可以理解为适应屏幕大小的方案。

5、因为我们这个是可以显示垂直滚动条,来滚动显示内容的,如果是不匀许,那么我们就得考虑要同时处理。

这篇关于@antv/x6 要求不显示水平滚动条,并且如果水平方向上显示不全的节点,则要求自动显示全部节点,垂直方向可以出现滚动条来滚动显示所有的节点。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128004

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业