Привет, ребята.
Я пытаюсь реализовать идеальную бесконечную прокрутку, идеальность заключается в удалении узлов ушедших за горизонт, в том числе и для мобильных девайсов. Тут есть разные подходы и разные глюки в итоге.
Варианты которые я пробовал.
1. Использование пустого div сверху в качестве держателя скролла. Когда мы удаляем ушедший за вьюпорт элемент, то мы берем его высоту и прибавляем к высоте пустого div. Тут хотя бы нет моргания при манипуляциях с дом. Но проблема кроется в том, что юзер может загнать вьюпорт на этот пустой div при обратном скролле. Эта проблема особенно актуальна в дефолтном андроидном браузере, там пока анимация скролла не остановится хрен получишь какие эвенты, подход с таймером не спасает от этого случая. То, что юзер загнал вьюпорт на этот пустой div наверное можно как-то решить, если принять какой-то вариант правильным в этом случае.
2. Есть второй подход - запоминать позицию прокрутки и возвращать на неё. Все бы хорошо. юзер особо не поскачет. ибо полоса скролла всегда под контролем, но тут в андроидном браузере и в фоксе проявляются скачки контента на странице при обновлении dom.
3. И есть третий вариант, это использовать div с прокруткой, в этом случае все ведет себя достаточно плавно, кроме фокса, у него жуткие тормоза на прокрутке div в сравнении с прокруткой всей страницы.
Ну и вопрос в том как добиться того чего я хочу? Или может быть я трачу силы зря и современные банано-технологии этого не позволяют и я должен ограничиться тупенькой кнопкой «Load More».
Что касается бесконечной прокрутки, то она в моём случае уместна, я знаю, что её порой не любят.