Как решить мерцающую таблицу и прыгающую полосу прокрутки наверх в DataTable Forge Viewer? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть DataTable, который имеет 100 строк, и я устанавливаю его со списками. Динамически я изменяю списки с выбранным именем из выпадающего списка.

Я делаю это с

   $("#datatable").remove();
   this.datatable =  new Autodesk.Viewing.UI.DataTable(this.panel);
   this.datatable.setData(datalist,titleList);

После изменения, если я пытаюсь go вниз с полосой прокрутки, это не позволить и автоматически переместит полосу прокрутки вверх, таблица замигает. Если количество строк меньше, то проблем нет вообще.

На Chrome консоли. Я вижу следующие сообщения:

Добавлен непассивный прослушиватель событий в событие touchstart, блокирующее прокрутку. Пометьте обработчик событий как пассивный, чтобы сделать страницу более отзывчивой. DockingPanel. js: 553 [Нарушение]

при запуске

и при попытке прокрутки:

[Нарушение] Принудительное перекомпонование при выполнении JavaScript заняло 75 мс

Интересно, что если я увеличу / уменьшу масштаб в браузере или на go во весь экран, проблема исчезнет, ​​я могу без проблем прокрутить вниз до нижних строк DataTable. И я не вижу этих сообщений [Нарушение]. Но функции щелчка таблицы не работают

Я удалил все css для контейнера (DockingPanel) и сам по себе, но проблема не изменилась , И у меня нет EventListener для прокрутки. Я знаю, что вопрос в широком диапазоне, но я не мог найти выход.

У кого-нибудь есть идеи? Это может быть проблема DOM?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Причиной, по которой он мерцал и не опускался на go в таблице, была первая строка, представляющая собой список, созданный с пустыми строками "". Когда я заполнил первый список любым символом, проблема была решена.

0 голосов
/ 20 февраля 2020

Вы пробовали на Firefox или мобильном браузере? Ваша проблема связана со слушателями событий. Попробуйте добавить

document.addEventListener('touchstart', handler, {passive: true});

, чтобы предотвратить PreventDefault.

...