РЕДАКТИРОВАТЬ: Я нашел jQuery решение! https://codepen.io/chriscoyier/pen/dpBMVP Этот действительно работает на iOS. Я думаю, что jQuery дни решения проблем поддержки браузеров еще не закончились.
Конечно, после многочасового поиска и, наконец, публикации в Stack Overflow, я нахожу решение через несколько минут. Я вижу, что некоторые другие внесли некоторые предложения в комментарии - я тоже проверю их. Однако это jQuery решение в Codepen, приведенном выше, делает свое дело и позволяет легко настроить скорость прокрутки для загрузки!
---------------- Оригинальный вопрос-- ---------------------
Возможно, вы заметили, что ни iOS Safari, ни iOS Chrome не поддерживают свойство CSS Поведение свитка: гладкое. У меня вопрос: есть ли другой javascript способ анимировать прокрутку до указанной c позиции на странице, которая не зависит от этого свойства CSS? Возможно, что-то, что прокручивает небольшое количество, а затем повторяет это поведение, пока не будет достигнута нужная цель? Я попробовал следующее, но я получил сообщение «Ошибка превышения максимального размера вызова»:
function scrollExperiment() {
const finalPosition = 500
let i = 0
if (i < finalPosition) {
window.scrollTo(0, 1);
i++
setTimeout(scrollExperiment(), 10)
}
} scrollExperiment()
Кто-нибудь когда-либо успешно создавал обходной путь, подобный этому? Я чувствую, что должно быть jQuery решение для этого, которое не зависит от свойства Scroll Behavior: Smooth, но я еще не нашел его. Я попробовал следующее, и он все равно не будет плавно прокручиваться на iOS:
$(window).scrollTop($("#anchor").offset().top);