Прокрутка стека с помощью прокрутки-привязки и фиксации положения

#html #css #mobile-safari #sticky #scroll-snap-points

#HTML #css #мобильный-safari #липкий #точки прокрутки-привязки

Вопрос:

Я использую scroll-snap в сочетании с position: sticky , которые показались элегантным подходом для включения эффекта стекирования карт во время прокрутки.

Это довольно отлично работает на рабочем столе, но в Safari (iOS12.1) я испытываю сбои, когда иногда карточки прокручиваются все вместе, пропуская содержимое.

Наиболее очевидный способ повторить ошибку в мобильном Safari — это:

  • прокрутите вниз до самого нижнего экрана
  • закройте (размытие) и снова откройте Safari
  • затем попытка прокрутки назад снова

Обнаружена ошибка: она пропускает все экраны, делая навигацию невозможной.

Я бы хотел, чтобы это работало только с CSS, но я был бы за любое (хорошее) решение. В конце концов, это предназначено для работы в приложении ReactJS.

Демонстрация: https://codepen.io/theo_t/full/BbGoWq

 .container {
  width: 100%;
  height: 100vh;
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: y mandatory;
}

.item {
  position: sticky;
  position: -webkit-sticky;
  top: 0;
  scroll-snap-align: start;
  width: 100%;
  height: 100vh;   
} 
  

Комментарии:

1. когда-нибудь это работало?

2. Я никогда раньше не использовал snap-scroll, и я пытаюсь использовать его прямо сейчас для полноэкранных страниц (с чередующимися цветами фона), чтобы привязать, чтобы заполнить экран. Это работает нормально, но липкий слой находится сверху, а iOS настолько полна решимости заставить анимацию привязки работать быстро, что в буквальном смысле оставляет элемент sticky position позади, и он как бы заикается. Я надеюсь, что смогу найти какое-нибудь 3D-преобразование, чтобы заставить их оба отображаться как один слой. Не уверен, что это вообще может быть связано с этим. Примечание: Я использую бета-версию iOS 15.