@glagola

Как устранить скачок контента при появлении scrollbar'a в SPA?

Всем привет!

Суть такая:

Eсть SPA (React), на некоторых страницах достаточно контента и scrollbar есть сам по себе, а на некоторых его недостаточно и scrollbar'a нет. При переходе между страницами с/без scrollbar набрлюдается небольшой горизонтальный скачок контента.

Вопрос:
Какие есть сложившиеся практики устранения данного горизонтального скачка контента страницы?

Цель вопроса:
Сформировать список решений данной проблемы.

P.S. Об этих вариантах решения проблемы я уже знаю:
  1. отображать scrollbar на всех страницах, вне зависимости от высоты контента;
  2. добавить больше контента на страницы, чтобы scrollbar добавил сам браузер;
  3. отказаться от стандартного scrollbar'a в пользу кастомного, который не занимает места (аля macos, мобилки);
  4. CSS хак (подходит не под все дизайны)


P.S.S. Есть идея как решить проблему сложно:
  1. Определяем ширину scrollbar'a в браузере пользователя (в разных браузерах он разный, но +/- 3 px)
  2. Будем добавлять класс scrollbar-X к html (где X - ширина в px из шага 1), только в случае если контент помещается во viewport браузера (scrollbar не появится) и убирать класс scrollbar-X если он не помещается (scrollbar появится)
  3. тогда с помощью иерархических запросов в css можно будет задать padding'и для тегов исходя из конкретной ширины scrollbar'a в браузере пользователя


Но хочется верить, что есть вариант проще ...
  • Вопрос задан
  • 682 просмотра
Пригласить эксперта
Ответы на вопрос 1
frammmm
@frammmm
Можно с помощью padding-right: 17px у контейнеров. Но нужно проверять наличие скроллбара
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы