DoubleScroll не показывает / неправильно определяет размер верхней полосы прокрутки для таблиц данных - PullRequest
0 голосов
/ 31 января 2020

Я использую двойную прокрутку . js ( GitHub ) (v0.05 11-11-2015) и dataTables. js ( 1.10.13) библиотеки.

Изначально использование этих двух элементов выглядело следующим образом, при этом таблица создавалась / загружалась более традиционным способом построения в представлении с использованием тегов JSP. Однако, как только результаты были в середине сотен или более, произошла заметная задержка производительности, возвращающая результаты. Эта медленная страница имела как верхнюю, так и нижнюю горизонтальную полосу прокрутки.

$('.double-scroll').doubleScroll({});
$('#searchListTable').dataTable({
        "info" : false,
        "pageLength" : 50,
        "searching" : false,
        "oLanguage": {
            "sLengthMenu": "&nbsp_MENU_"
        }
    });

Поэтому, чтобы решить проблему производительности, вместо этого данные были созданы как объект и переданы непосредственно в dataTables. Это привело к тому, что таблица вышла из элемента div, в котором она находилась, и решением было переместить вызов двойной прокрутки вниз.

$('#searchListTable').dataTable({
        "info" : false,
        data: dataSet,
        "pageLength" : 50,
        "searching" : false,
        "oLanguage": {
            "sLengthMenu": "&nbsp_MENU_"
        }
    });
$('.double-scroll').doubleScroll({});

Теперь проблема в том, что верхняя полоса прокрутки не отображается. Теперь он действительно существует (между верхней частью окна и количеством элементов в таблице есть пространство, плюс вы можете просмотреть код). Проблема в том, что она составляет 100% ширины страницы, поэтому, поскольку она не переполняется, она не должна появляться. Тем не менее, нижняя полоса прокрутки отображается правильно и имеет правильный размер.

Существует способ обойти это, обернув таблицу новым элементом div и установив размер 1512px (который является конечным размером таблицы), но его хаки sh и если размеры таблицы изменить (например, если выбран французский), то он больше не выполняет свою работу.

Мне нужно изменить размер одного (или нескольких) элементов div, но я не хочу полагаться на использование JavaScript или JQuery, чтобы проверить ширину таблицы и затем обновить элемент div. Мне бы просто хотелось, чтобы двойной скролл. js работал правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...