Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.x版本增加Scroller配置后,节点拖动过程会消失 #3292

Closed
donghuizhou opened this issue Feb 23, 2023 · 11 comments
Closed

2.x版本增加Scroller配置后,节点拖动过程会消失 #3292

donghuizhou opened this issue Feb 23, 2023 · 11 comments
Labels
bug:scroller scroller plugin bug

Comments

@donghuizhou
Copy link

问题描述

同样的场景,同样的数据,在1.x版本和2.x版本下的不同表现。

下面是1.x版本下,开启 scroller 配置,关闭 panning 配置的效果,可以看到拖动节点时,节点正常显示,滚动条是实时跟着滚动的

new Graph({
    scroller: {
        enabled: true,
        pannable: true
    },
    panning: false
})
1x.mp4

下面是2.x版本下,开启 scroller 配置,关闭 panning 配置的效果,可以看到节点拖动时,滚动条要等拖动结束才会滚动,并且节点拖动过程中会消失

new Graph({
    panning: false
})
graph.use( // 滚动
  new Scroller({
    enabled: true,
    pannable: true
  })
)
2x.mp4

下面是2.x版本下,关闭scroller 配置,开启panning 配置的效果,可以看到节点拖动过程显示正常:

new Graph({
    panning: true
})
// graph.use( // 滚动
//   new Scroller({
//     enabled: true,
//     pannable: true
//   })
// )
2x.2.mp4

我的猜测是,2.x开启 scroller 后,由于滚动条没有跟着节点的移动而实时滚动,所以节点四周的区域不是当前可见区域,所以节点才会消失,等到滚动条滚动后,可见区域变成了当前节点所在区域,所以节点才能看到,请问这种情况如何解决?

重现链接

重现步骤

如上描述

预期行为

在开启 scroller 配置后,拖动节点,不出现节点消失现象

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]
  • X6 版本: [1.28.2 ... ]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response

@donghuizhou
Copy link
Author

找到原因了,scroller 区分了当前页,如果节点拖拽出当前页,那超出部分的节点不会显示,要等当前页之外的页面渲染完后才展示节点,如下视频所示:

page.mp4

视频末尾可以看到,节点正好拖动到当前页边缘时,port 被遮住了一半,体验不友好。

我现在的需求是: 当节点快被拖动到当前页边缘时,能否提前渲染其他页,防止出现节点被裁减现象

demo

@NewByVector NewByVector added the bug:scroller scroller plugin bug label Mar 2, 2023
@oyal
Copy link

oyal commented Mar 7, 2023

之前我在官网示例复现过这个问题,但当时用的 1.x。并且 2.x 往新画布区域拖拽线也是这种情况

20230307_173813

@lhC0
Copy link

lhC0 commented Mar 9, 2023

版本1.X中有这个配置解决了当时发生在我代码中的预渲染问题
image
但是升级到2.0这个配置,这个配置似乎删掉了,而且,问题如上所示,比1.X版本更突出

@donghuizhou
Copy link
Author

@NewByVector 请问那这个bug修的怎么样了

@nikbabchenko
Copy link

The problem with the scroller negatively affects the user experience, causing some minor glitches.

Would be really nice to have.

@jrs64
Copy link

jrs64 commented Oct 12, 2023

版本1.X中有这个配置解决了当时发生在我代码中的预渲染问题 image 但是升级到2.0这个配置,这个配置似乎删掉了,而且,问题如上所示,比1.X版本更突出

最新版本是有这个autoResizeOptions参数的,只是文档上没有写出来

   graph.use(
      new Scroller({
        enabled: true,
        pageVisible: true,
        pageBreak: true,
        pannable: true,
        autoResize: true,
          autoResizeOptions: {
            border: 200,
          },
      })
    )

@donghuizhou
Copy link
Author

版本1.X中有这个配置解决了当时发生在我代码中的预渲染问题 image 但是升级到2.0这个配置,这个配置似乎删掉了,而且,问题如上所示,比1.X版本更突出

最新版本是有这个autoResizeOptions参数的,只是文档上没有写出来

   graph.use(
      new Scroller({
        enabled: true,
        pageVisible: true,
        pageBreak: true,
        pannable: true,
        autoResize: true,
          autoResizeOptions: {
            border: 200,
          },
      })
    )

nice

@QAQLC
Copy link

QAQLC commented Dec 6, 2023

border: 200,

设置这个还是无效啊,我是在是scroll插件里面配置的

@itwmike
Copy link

itwmike commented Jun 7, 2024

同问 , 何时能修复

@itwmike
Copy link

itwmike commented Jun 11, 2024

版本1.X中有这个配置解决了当时发生在我代码中的预渲染问题 image 但是升级到2.0这个配置,这个配置似乎删掉了,而且,问题如上所示,比1.X版本更突出

最新版本是有这个autoResizeOptions参数的,只是文档上没有写出来

   graph.use(
      new Scroller({
        enabled: true,
        pageVisible: true,
        pageBreak: true,
        pannable: true,
        autoResize: true,
          autoResizeOptions: {
            border: 200,
          },
      })
    )

按照这个设置确实可以了

@hanjituan
Copy link

hanjituan commented Nov 5, 2024

我目前遇到的情况是:
默认绘制了分页之外的节点和连线, 对画布不进行操作, 滚动之后, 不会渲染可视区域外的节点和连线.
必须拖动一下其他节点,好像才会重新渲染画布本页之外的节点...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug:scroller scroller plugin bug
Projects
None yet
Development

No branches or pull requests

9 participants