Мобильная прокрутка Safari не работает! Я перепробовал все исправления, доступные при переполнении стека - PullRequest
0 голосов
/ 08 октября 2019

На мобильном телефоне 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 и просто прокрутить все окно. Прокрутка всего окна, кажется, единственный тип прокрутки, который работает в мобильном сафари.

...