Pull to refresh

Comments 7

Точно не должно быть complete везде, где сейчас complite?

Да, спасибо, ошибочка вышла. Отсутствие нейтив инглиша и собственная безграмотность часто меня приводят к подобным ошибкам.

You're welcome. У всех бывает. Для того и комменты.

К сожалению, не все браузеры ещё умные. Ваша проблема скорее всего связана с тем, что не хватает scrollHeight для отскролла так, чтобы элементы выше нужного ушли из видимой области. Поэтому умный браузер в качестве якоря выбирает не тот элемент, что вам нужно, поэтому и происходит скачок. Тут я рассказывал как работают умные браузеры:

https://github.com/nin-jin/slides/tree/master/virt

Да, вы правы, проблема в том что я не знаю финального scrollHeight. А узнать его можно только после того как компоненты с изменяемой высотой будут отрендерены на странице. По сути scrollHeight можно узнать после вызова события onRenderChildrenComplete

И да, я должен снять перед вами шляпу, потому что как то давно еще видел у вас как раз реализацию с динамическим скролом, который автоматически подгружал нужные данные в нужном положении скролла (кажется это был некий grid). Собственно по аналогии как это было реализовано у вас я и реализовал это в своем текущем проекте.

Статью по ссылке не видел, прочитаю, спасибо!

  1. Нельзя ли применить ResizeObserver/MutationObserver? (но вполне возможно, что это даст лишнюю нагрузку на проц)

  2. "если у нас SPA и мы хотим реализовать восстановление положения скролла при переходе на шаг назад" – а нет возможности разбить страницу на части и всё-таки задействовать scrollintoview? (в пределе – модифицируя url fragment так, чтобы соответствовал)

ResizeObserver/MutationObserver

Как узнать что изменений больше не будет?

задействовать scrollintoview?

Проблема с scrollintoview что с ним не получится восстановить скролл на том месте, на котором пользователь был ранее.

Sign up to leave a comment.

Articles