У меня фиксированный <div>
с overflow-y: auto;
и -webkit-overflow-scrolling: touch;
. До сих пор работает нормально на iOS, но не при прокрутке в неправильном направлении (если пользователь пытается прокрутить вверх, но находится вверху содержимого div или же внизу): тогда Safari, похоже, видит прокрутку <body>
как более важно и отключает прокрутку в <div>
на мгновение . Если пользователь не ждет ни минуты, прокрутить вниз можно в <div>
. При прокрутке в правильном направлении в <div>
изначально все отлично работает.
Такое ощущение, что прокрутка в <div>
отключена, пока будет происходить переход прокрутки тела. Поэтому я попытался отключить -webkit-overflow-scrolling
для элемента body / html. Еще не решил проблему.
Это CSS, который я использовал. HTML это просто div с большим количеством текста в теле.
html, body {
/* this seems not to solve the problem */
overflow: hidden;
-webkit-overflow-scrolling: auto;
}
.scrollable-div {
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
/* div has a fixed position */
position: fixed;
top: 3em;
right: 3em;
bottom: 3em;
left: 3em;
/* just for styling */
background-color: #999999;
}
На самом деле прокрутка переполнения webkit, похоже, не работает, если вы изначально выполняете прокрутку в неправильном направлении, и снова будет работать нормально только после некоторого ожидания. Трудно поверить, что во всем Интернете никто, кажется, не описывает эту проблему, но не говоря уже о ее решении.