Прокрутка не работает с длинным содержимым в табуляторе

#tabulator

#табулятор

Вопрос:

Я заметил, что когда у меня есть ячейки с большим количеством текста, таблица не будет прокручиваться по вертикали. Когда я прокручиваю вниз, таблица возвращается к началу. Поведение зависит от объема содержимого и ширины столбца. Более широкий столбец может обрабатывать больше содержимого, прежде чем это поведение будет замечено.

Я думал, что это связано с моим собственным настраиваемым форматером, но это также происходит для текстовой области и форматеров html.

Ответ №1:

Это может произойти, если содержимое строки значительно длиннее высоты таблицы.

В этом случае вы можете улучшить стабильность прокрутки, увеличив размер виртуального буфера рендеринга dom в таблице. это объем пространства, который таблица отображает над и под таблицей, чтобы обеспечить плавную прокрутку.

По умолчанию установлено значение, в 2 раза превышающее высоту таблицы. Вы должны убедиться, что оно как минимум в 5 раз превышает высоту вашей самой высокой строки.

Это можно сделать с помощью virtualDomBuffer опции в конструкторе таблиц:

 var table = new Tabulator("#example-table", {
    virtualDomBuffer:300, //set virtual DOM buffer to 300px
});
 

Более подробную информацию об этом можно найти в документации Virtual DOM

Хотя с точки зрения пользовательского интерфейса я бы задал вопрос, является ли таблица лучшим способом размещения данных, если она занимает большое вертикальное пространство. Вероятно, было бы понятнее отображать сводную информацию в строках, а затем использовать либо a rowFormatter для переключения раздела сведений под строкой, либо modal для отображения более подробной информации

Комментарии:

1. Спасибо. Я попробую это сделать. В итоге для меня это не проблема, поскольку моя таблица теперь всегда будет обрезать длинный текст и добавлять кнопку modal для отображения полного текста. Самая сложная часть этого решения заключается в том, что текст может быть HTML, а усечение HTML с потерянными тегами не идеально, поэтому для правильного отображения требуется много настроек.