Я создаю POC для бесконечного скроллера LitElement, который ограничивает количество DOM в списке. Компонент основан на следующем: https://medium.com/walmartglobaltech/infinite-scrolling-the-right-way-11b098a08815
Мой POC находится здесь: https://stackblitz.com/edit/lit-element-infinite-scroller-poc
Позиционирование элемента достигается путем настройки отступов и обновления содержимого элемента списка при срабатывании IntersectionObserver.
Когда компонент прокручивается очень быстро сверху вниз, он работает нормально. Когда вы замедляете прокрутку, он иногда добавляет отступ до достижения порога IntersectionObserver. Что касается прокрутки снизу вверх, она всегда ведет себя так, независимо от того, быстро вы или медленно прокручиваете.
Я предполагаю, что это проблема времени, но я не могу точно определить, где именно.