我注意到,当单元格中有大量文本时,表格不会垂直滚动。当我向下滚动时,表格跳回顶部。该行为是内容量和列宽度的函数。在出现此行为之前,较宽的列可以处理更多内容。
我认为这是由于我自己的自定义格式化程序造成的,但它也发生在 textarea 和 html 格式化程序中。
如果行内容明显长于表格的高度,就会发生这种情况。
在这种情况下,您可以通过增加表格上虚拟 dom 渲染缓冲区的大小来提高滚动稳定性。这是表格在表格上方和下方呈现的空间量,以允许平滑滚动。
默认设置为桌子高度的 2 倍。您应该确保它至少是最高行高度的 5 倍。
这可以使用表构造函数中的
virtualDomBuffer
选项来完成:
var table = new Tabulator("#example-table", {
virtualDomBuffer:300, //set virtual DOM buffer to 300px
});
有关这方面的更多信息可以在虚拟 DOM 文档
中找到虽然从用户体验的角度来看,如果表格占用了很大的垂直空间,我会质疑表格是否是布局数据的最佳方式。在行中显示摘要信息可能会更清晰,然后使用
rowFormatter
切换行下的详细信息部分,或使用模式来显示更多详细信息
另一个对我有帮助的选择是禁用虚拟 DOM,但你必须考虑缺点。你可以这样做:
var table = new Tabulator("#example-table", { virtualDom:false, //禁用虚拟 DOM 渲染 });