#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 с потерянными тегами не идеально, поэтому для правильного отображения требуется много настроек.