@Oooopps

Как на определенном блоке реализовать горизонтальный скролл?

Я хочу что бы при появлении определенного (реакт) компонента scroll страницы переходил из вертикального ореинтира в горизонтальный. Грубо говоря когда скроллим страницу до определенного блока, продолжая скроллить, страница стоит на месте, а скроллится какой-то горизонтальный компонент (например слайдер). Мне нужно не готовое решение, а лишь идеи как это реализовать (желательно даже нативно, а не библиотекой)
Референс: https://www.bar-loft.com/ поскрольте до блока "наша философия"
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
Big_Trouble
@Big_Trouble
Программист недосамоучка
1) Вешаем на окно обработчик на событие scroll.
2). При каждом скроле проверяем находиться ли блок, который должен скролиться горизонтально в пределах окна браузера
3) Если да - блокируем на время возможность скрола, а блок который должен скролиться горизонтально сдвигаем с помощью translateX на определенное количество пикселей, в зависимости от того в какую сторону мы крутим колесико мыши.
4) При каждом скроле(горизонтальном) проверяем прошел ли этот html элемент необходимую нам длину
5) Если да, запускаем вертикальный скрол

Почитать можно здесь:
https://developer.mozilla.org/en-US/docs/Web/API/E...
https://developer.mozilla.org/en-US/docs/Web/API/I...
https://developer.mozilla.org/en-US/docs/Web/API/E...
https://developer.mozilla.org/en-US/docs/Web/API/D...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы