У меня есть следующий код, который при нажатии успешно прокручивается до ссылки привязки. По какой-то причине этот же код вызывает странный дергающийся эффект на 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;
});
@PeterWone Спасибо, что поделились советом. Я посмотрю на .animate, чтобы узнать, смогу ли я найти решение.
Удар в темноте:
animate
устанавливает обработчики событий и не может удалить один, когда анимация заканчивается. Обработчик реагирует на прокрутку и мешает ей, вероятно, из-за того, что что-то не позволяет распознать завершение анимации. Если отладкаanimate
- это не то, чем вы хотите заниматься, и вы обязаны поддерживать iPad, не используйтеanimate
.