Обратная бесконечная прокрутка не работает должным образом, когда активна прокрутка мыши - PullRequest
0 голосов
/ 03 января 2019

Я хочу создать подобный чату компонент с «бесконечной» прокруткой, чтобы изначально пользователь просто видел последние сообщения, а при прокрутке вверх - новые сообщения загружались, а пользователь мог видеть «старые» сообщения.

Я работаю с Angular 7 и пытался реализовать его с тремя различными компонентами (пропреитарием, прокруткой данных Prime NG с несколькими изменениями [инвертировано] и компонентом Infinite Scroll), но я продолжаю сталкиваться с одной и той же проблемой:

  • Когда новые сообщения добавляются в конец списка - все работает нормально, но когда я пытаюсь добавить сообщения в начале списка, это не работает, если я использую мышь для прокрутки вверх .

  • Если я использую клавиатуру - новые сообщения добавляются и позиция scrollTop сохраняется относительно. Но если я использую мышь для прокрутки вверх (перетаскивание мышью), позиция ABSOLUTE scrollTop сохраняется, и пользователь теряет отслеживание сообщений.

Пример: Если исходным подмножеством были сообщения 36-45, а пользователь прокручивает до сообщения 36, я хотел бы загрузить еще 10 сообщений (26-35), но сохранить позицию прокрутки в сообщении 36 (для удобства). Если я прокручиваю вверх с помощью клавиатуры, это именно то, что происходит, но если я прокручиваю вверх с помощью мыши, абсолютное значение scrollTop сохраняется и список «переходит» к сообщению 26.

Я могу установить scrollTop с помощью кода, но когда прокрутка продолжается, позиция «возвращается» к предыдущему значению scrollTop.

Есть идеи, почему это происходит? Как я могу это исправить?

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