如何解决 DataTable Forge 查看器中闪烁 table 和弹跳滚动条到顶部的问题?

How to solve flickering table and bouncing scrollbar to top in DataTable Forge viewer?

我有一个包含 100 行的数据表,我正在使用列表对其进行设置。 我动态地更改了下拉列表中选定名称的列表。

我用

   $("#datatable").remove();
   this.datatable =  new Autodesk.Viewing.UI.DataTable(this.panel);
   this.datatable.setData(datalist,titleList);

更改后,如果我尝试向下滚动条,它不允许并自动将滚动条带到顶部,table 闪烁。如果行数较少,则完全没有问题。

在 Chrome 控制台上,我看到了这些消息:

向滚动阻塞 'touchstart' 事件添加了非被动事件侦听器。考虑将事件处理程序标记为 'passive' 以使页面响应更快。 DockingPanel.js:553 [违规]

开始时

当我尝试滚动时:

[违规] 执行时强制回流 JavaScript 花费 75 毫秒

有趣的是,如果我在浏览器上缩放 in/out 或全屏显示,问题就会消失,我可以毫无问题地向下滚动到 DataTable 的底部行。而且我没有看到那些 [Violation] 消息。 但是table的点击功能不起作用

我已经删除了容器 (DockingPanel) 和数据 table 本身的所有 css,但问题没有改变。而且我没有任何 eventlisteners 用于滚动。我知道这个问题范围很广,但我找不到任何出路。

有人知道吗?会不会是 DOM 问题?

你试过火狐浏览器还是手机浏览器? 您的问题与事件侦听器有关。尝试添加

document.addEventListener('touchstart', handler, {passive: true});

防止 PreventDefault。

之所以在 table 上闪烁不下来,是因为第一行是用空字符串 "" 创建的列表。当我用任何字符填充第一个列表时,问题就解决了。