На мобильном телефоне Safari нарушена прокрутка элементов div. Scroll работает на любом другом браузере, я думаю, что даже IE.
Вертикальная прокрутка :
- В левой части экрана сенсорная прокрутка иногда работает правильно
- В правой части экранасенсорная прокрутка перемещает все тело документа, даже если нет места для прокрутки тела. Элемент div, который должен прокручиваться, заблокирован
- Иногда, если я прокручиваю всю страницу до конца или слишком быстро, она блокирует прокрутку div даже на левой стороне экрана
Горизонтальная прокрутка
- Для горизонтальных прокручиваемых div-ов, safari часто ошибается при прокрутке при смене страницы
- Safari иногда нажимает кнопки при попытке прокрутки по горизонтали при касаниикнопка
Исправления, которые я уже пробовал:
- set
-webkit-overflow-scrolling: touch
на прокручиваемом div - set
document.body.style.overflow = 'hidden'
используя touchstart
обработчик событий - , вызывающий
e.preventDefault()
в обработчике события прокрутки на window
- вызов
e.preventDefault()
на обработчике событий touchmove на document.body
Другая важная информация
- мой прокручиваемый div равен
position: relative
.
Я попробовал, казалось бы, все доступное мне для исправления прокрутки. Единственное, что я не пробовал - это вручную прокручивать div с помощью обработчика touchmove
. Даже если это сработает, это ухудшит производительность, которую я пытаюсь избежать.
Пожалуйста, скажите мне, что я упускаю что-то простое? !!?
Единственное верное исправление, которое я нашелэто полностью отказаться от прокрутки div и просто прокрутить все окно. Прокрутка всего окна, кажется, единственный тип прокрутки, который работает в мобильном сафари.