如何解决 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 上闪烁不下来,是因为第一行是用空字符串 ""
创建的列表。当我用任何字符填充第一个列表时,问题就解决了。
我有一个包含 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 上闪烁不下来,是因为第一行是用空字符串 ""
创建的列表。当我用任何字符填充第一个列表时,问题就解决了。