чтобы элемент оставался прикрепленным к другому элементу полной ширины - PullRequest
0 голосов
/ 07 марта 2020

Мне нужно создать форму, которая остается закрепленной при прокрутке нового элемента полной ширины.

На этом сайте вы можете увидеть его в действии: https://www.pillpack.com/how-it-works, но после проверки элементы, я до сих пор не вижу, как они достигают этого эффекта.

Вот как выглядит мой макет:

enter image description here

Красный прямоугольник прикреплен и при прокрутке он будет прилипать к верхней части области просмотра. Проблема, с которой я здесь сталкиваюсь, заключается в том, что мне нужно, чтобы красный прямоугольник оставался липким даже при достижении зеленой части.

Способ, которым я в настоящее время достигаю этого эффекта, состоит в основном из 2 столбцов в родительском контейнере. Родительский контейнер сгибает свои дочерние элементы, а красный прямоугольник имеет фиксированную позицию. Но теперь у меня есть элемент полной ширины, на котором мой красный прямоугольник все еще должен оставаться липким.

Хотелось бы немного разобраться в этом.

РЕДАКТИРОВАТЬ:

некоторые основы c psuedo-esque code for you ...

HTML

section.wrapper
  div.container
    div.left
    form
section.wrapper.green-bg
  div.container
    div.left
CSS

.wrapper {
  position: relative;
  width: 100%;
}

.container {
  max-width: 1100px;
  width: 90%;
  margin: 0 auto;
  display: flex;
  flex-flow: row nowrap;
  align-items: flex-start;
}

.form {
  position: sticky;
  top: 0;
}

Надеюсь, вы, ребята, сможете понять проблему здесь. sections - элементы полной ширины. Внутри sections есть div.container, который имеет максимальную ширину и центрирован. Внутри container находится содержимое.

В первом разделе не должно быть фона, а во втором - зеленый фон. Поскольку фон имеет полную ширину, это необходимо сделать для элемента section. Это вызывает проблемы, потому что для того, чтобы красный прямоугольник был прикреплен, все элементы должны быть внутри родительского контейнера.

1 Ответ

1 голос
/ 07 марта 2020

Это потому, что ваша форма вложена в отдельную оболочку от вашей зеленой области. Липкая форма и зеленая область должны быть охвачены одним и тем же родительским элементом.

Basi c пример: https://codesandbox.io/s/elastic-hoover-mdy4t

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...