В моем приложении React есть список продуктов с компонентом pageNav
.
Я показываю 8 продуктов на странице, поэтому, когда вы нажимаете кнопку NextPage
(которая находится внизу списка), мне нужно прокрутить пользователя обратно наверх, чтобы вы увидели начало следующей страницы.
Это связано с тем, что мой компонент ResultList
будет в основном повторно отображать синхронно (без вызовов API) для отображения продуктов для следующей страницы. Если я не прокручиваю вас обратно наверх, вы увидите конец следующей страницы, и в этом нет никакого смысла.
Как я это делал, когда вы нажимаете на кнопку NextPage
:
window.scrollTo({
top: 0,
behavior: 'smooth'
});
Я сделал это так, потому что я думаю, что эффект сглаживания держит пользователя на 100% в курсе того, что происходит со страницей.
После первой загрузки Chrome ведет себя нормально, вы можете прокручивать вверх и вниз просто отлично. Но после того, как вы нажмете на кнопки PrevPage
или NextPage
, чтобы перейти к другим продуктам, вы увидите, что происходит автоматическая плавная прокрутка, чтобы вернуться к началу страницы, но с этого момента вы получите чрезвычайно прерывистую и запаздывающую прокрутку для страница. Он застревает везде вниз и вверх.
Firefox, похоже, отлично справляется с плавной прокруткой. Даже после смены страниц несколько раз пользовательская прокрутка работает нормально.
Это происходит только в мобильном Chrome. Фаерфокс работает нормально. Safari не тестировался.
Samsung Galaxy A5 2017
Android 8.0.0
Chrome Mobile 79.0.3945.136
Что мне нужно было сделать:
Я удалил эффект прокрутки.
window.scrollTo({
top: 0
});
И теперь он снова работает нормально, но у меня пропал эффект плавности переходов страниц.
ВОПРОС
Кто-нибудь сталкивался с этой проблемой?
Есть ли обходной путь для этого, чтобы я мог сохранить плавный эффект?