turkish777
@turkish777
junior frontend

Как сделать такой липкий sidebar?

Добрый день.

Есть оранжевый блок с раскрывающимися списками. Поэтому высота его не определена.
Если мы скроллим вниз, блок фиксится на уровне красной линии.
5e414bb677f8e453466395.png

Если мы скроллим вниз и оранжевый блок (списки раскрыты) превышает высоту между красной и зеленой линией, то оранжевый блок прилипает к зеленой линии
5e414d271f22b813944320.png

Если мы скроллим вверх и оранжевый блок (списки раскрыты) превышает высоту между красной и зеленой линией, то оранжевый блок прилипает к красной линии
5e414d927b3c1806164527.png

надо чтобы блок плавно, параллельно скроллу перемещался

Надеюсь, понятно объяснил задачу, как такое реализовать?
Заранее спасибо
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
держи

Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mrerberg
@mrerberg
Yep
Достаточно будет css свойства 'position: sticky'

https://developer.mozilla.org/ru/docs/Web/CSS/position
Ответ написан
Aketca
@Aketca
Вечный front-end ученик
hc-sticky или если есть время и желание - пишем скрипт, в котором мы можем по событию скролл измерять расстояние к верху видимой области - исходя из чисел уже делать калькуляции. Задачка не очень сложная, но нужно будет дебажить и учитывать ресайзы, разные типы устройств, тестировать - если есть какие-то сроки - воспользуйтесь любым готовым решением.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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