Почему анимированная прокрутка до привязки вызывает дрожание на iPad при последующей попытке прокрутки?

У меня есть следующий код, который при нажатии успешно прокручивается до ссылки привязки. По какой-то причине этот же код вызывает странный дергающийся эффект на iPad. Если вы нажмете якорную ссылку, прокрутите до нее, а затем попытайтесь перетащить экран, чтобы прокрутить весь сайт, мигает и не позволяет прокручивать вверх.

Есть идеи, почему это может происходить?

$(document).on('click', 'a[href^ = "#"]', function() {
  if ($(window).width() > 1024) {
    $('html, body').animate({
        scrollTop: $($.attr(this, 'href')).offset().top - 57
    }, 500);
  } else {
    $('html, body').animate({
        scrollTop: $($.attr(this, 'href')).offset().top - 49
    }, 500);
  }
  return false;
});

Удар в темноте: animate устанавливает обработчики событий и не может удалить один, когда анимация заканчивается. Обработчик реагирует на прокрутку и мешает ей, вероятно, из-за того, что что-то не позволяет распознать завершение анимации. Если отладка animate - это не то, чем вы хотите заниматься, и вы обязаны поддерживать iPad, не используйте animate.

Peter Wone 18.12.2018 02:04

@PeterWone Спасибо, что поделились советом. Я посмотрю на .animate, чтобы узнать, смогу ли я найти решение.

user2498890 18.12.2018 02:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
21
0

Другие вопросы по теме