Size: a a a

Angular - русскоговорящее сообщество

2021 February 15

V

Veli in Angular - русскоговорящее сообщество
Danilka
Да я уже решил эту проблему
как?
источник

D

Danilka in Angular - русскоговорящее сообщество
Я сделал behaviour subject, который хранит высоту контента. В afterviewchacked обновляю высоту. Также в afterviewinit подписываюсь на то, когда новый ajax запрос происходит и добавляются новые элементы. После с помощью пайпа pairwarse получаю прошлое значение высоты и нынешнее и считаю дельту изменения. Ее я устанавливаю в качестве скрола. Ситуацию облегчает то, что не нужно учитывать скрол, до того как новые сообщения добавились, так как они добавляются по достижению верхней границы (scrolltop равняется нулю). Думаю легче скинуть код, чем все тут расписывать. Если хотите могу кинут гитхаб.
источник

D

Danilka in Angular - русскоговорящее сообщество
К подписке на ajax запрос я добавил switchmap, который возвращает content height обзервер и потом уже добавляю pairwarse
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Alex Okrushko
Переслано от Alex Okrushko
Всем привет!

Опубликовал TypeScript style guide основанный на том, который недавно опен-сорснул в Гугле.

Этот гид будет дальше продвигаться и меняться с фидбэком от коммунити.

https://twitter.com/AlexOkrushko/status/1361349665409622016
спасибо.
источник

D

Danilka in Angular - русскоговорящее сообщество
Кто-нибудь знает, как ВК сделал расположение скрола на body, но скролится элемент с сообщениями?
источник

V

Veli in Angular - русскоговорящее сообщество
Danilka
Я сделал behaviour subject, который хранит высоту контента. В afterviewchacked обновляю высоту. Также в afterviewinit подписываюсь на то, когда новый ajax запрос происходит и добавляются новые элементы. После с помощью пайпа pairwarse получаю прошлое значение высоты и нынешнее и считаю дельту изменения. Ее я устанавливаю в качестве скрола. Ситуацию облегчает то, что не нужно учитывать скрол, до того как новые сообщения добавились, так как они добавляются по достижению верхней границы (scrolltop равняется нулю). Думаю легче скинуть код, чем все тут расписывать. Если хотите могу кинут гитхаб.
понял смысл, я примерно это и предлагал) но как-то странно, что сообщения запрашиваются, когда scrolltop=0, потому что обычно делается запас для того, чтобы пользователь мог дальше скроллить, пока данные грузятся
источник

V

Veli in Angular - русскоговорящее сообщество
за счет этого задержка не будет видна
источник

D

Danilka in Angular - русскоговорящее сообщество
Да я знаю про это. Просто я для начала сделал так как описал, а позже сделаю запас.
источник

D

Danilka in Angular - русскоговорящее сообщество
Veli
понял смысл, я примерно это и предлагал) но как-то странно, что сообщения запрашиваются, когда scrolltop=0, потому что обычно делается запас для того, чтобы пользователь мог дальше скроллить, пока данные грузятся
А ну я просто не видел
источник

D

Danilka in Angular - русскоговорящее сообщество
Что вы описывали похожую идею
источник

V

Veli in Angular - русскоговорящее сообщество
Veli
Это просто название того, что ты описал (подгрузка при скролле)

Я так понимаю, твоя проблема в том, что после подгрузеи данных, позиция скролла не остаётся на месте, а поднимается на самый верх добавленных элементов? Это стандартное поведение браузера. Насколько я знаю, предотвратить его невозможно. Есть вариант отслеживать позицию скролла до запроса данных, а затем скроллить на эту позицию + высоту добавленных данных сразу после загрузки нового списка
вот)
источник

D

Danilka in Angular - русскоговорящее сообщество
А так это то самое. Видимо я не так понял вашу идею)
источник

V

Veli in Angular - русскоговорящее сообщество
высота добавленных данных - как раз то, что вы вычисляете сейчас

А позиция скролла нужна из-за того, что я рассчитывал, что запрашивать данные вы будете до достижения верхней границы, а не при ее непосредственном достижении
источник

D

Danilka in Angular - русскоговорящее сообщество
Ну в любом случаи спасибо за помощь
источник

D

Danilka in Angular - русскоговорящее сообщество
Странно как то, что я не так понял ваше сообщение
источник

V

Veli in Angular - русскоговорящее сообщество
Danilka
Ну в любом случаи спасибо за помощь
да, в любом случае, отлично, что решили) При скролле после запроса данных экран не дергается? У меня просто была такая проблема
источник

ДЗ

Денис Зубко... in Angular - русскоговорящее сообщество
Vadim Malovaniy
мб это хромовской плагин какой то?
Да, это плагин. Большое спасибо)
источник

V

Veli in Angular - русскоговорящее сообщество
Danilka
Странно как то, что я не так понял ваше сообщение
я еще писал второй способ - считать скролл от низа
источник

V

Veli in Angular - русскоговорящее сообщество
но в этом есть смысл только тогда, когда вы делаете виртуальный скролл, потому что в обычном вы не измените поведение вычисления позиции скролла
источник

D

Danilka in Angular - русскоговорящее сообщество
Veli
я еще писал второй способ - считать скролл от низа
Аааа. Я его пытался сделать. Вроде есть немного, но оно не  особо заметно, так что пойдет
источник