Как прокрутить таблицу tbody, когда innerHTML обновлен новыми строками? - PullRequest
0 голосов
/ 19 сентября 2019

Как автоматически прокрутить вниз на 100% тело планшета (display: block; overflow-y: scroll;), когда я добавляю строки БЕЗ использования таймера и ТОЛЬКО если его прокручивали на 100% до добавления строк.

Эта таблица представляет собой живой журнал (заполняется EventSouce), и строки добавляются, когда сервер отправляет новые данные Json.

  • Мне не нужен таймер, поскольку строки добавляются иногда каждую секунду, иногда после несколькихминут, и я не хочу, чтобы пользователь мог просматривать верхние строки.Добавление наведения для отключения таймера создаст другие проблемы и является своего рода активным состоянием, которое пытается прокручивать каждый тайм-аут таймера вместо прокрутки только при добавлении новых данных и сразу при добавлении новых данных.

ЧтоЯ ищу это точное поведение:

  • Если текущая таблица не прокручивается на 100% вниз (последняя строка не видна): НЕ НИЧЕГО при добавлении строки.(Это означает, что пользователь проверяет верхние строки)
  • ЕСЛИ текущая таблица прокручивается на 100% перед добавлением новых строк (отображается последняя строка), затем добавляются строки и прокручиваются на 100%.

Моя ежегодно прокручиваемая таблица с фиксированным заголовком вдохновлена ​​этим: https://forum.alsacreations.com/topic-4-62439-1-TABLE--Scrollable-TBODY-and-fixed-THEAD-reloaded.html, и она отлично работает.

На данный момент это выглядит так: http://www.usablesecurity.net/OSCAR/pkgs/downloads/screenshots/SystemImager_webgui_client_console.png

К сожалению, когдадобавлено больше строк, пользователь должен прокрутить вниз, чтобы увидеть их, что не удобно.

Я думаю, что мне нужно сделать это вокруг строки 71 (и, возможно, 55) в моем коде здесь: https://github.com/finley/SystemImager/blob/initrd-from-imageserver-and-dont-package-initrd/webgui/client_console.php

перед строкой 71: проверьте, видна ли последняя строка, и помните об этом.После строки 71: прокрутите вниз на 100%, если последняя строка была видна перед последним обновлением.

CSS, обеспечивающий прокрутку тела, начинается здесь со строки 58: https://github.com/finley/SystemImager/blob/initrd-from-imageserver-and-dont-package-initrd/webgui/css/screen.css

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

Любая помощь или советы будут с благодарностью.

...