jQuery ScrollTop для ID элемента не работает в Safari - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно кросс-браузерное решение для прокрутки до элемента на странице. Этот код прекрасно работает на Chrome, но не на Safari и не на мобильных устройствах. Он прокручивается до верхней части страницы, а не до div id:

$(".link").click(function() {
    $("html,body").animate({ scrollTop: $("#div_id").offset().top - 260 }, 1000);
});

1 Ответ

0 голосов
/ 05 сентября 2018

Согласно эта проблема записана на github (теперь закрыта), если у вас есть следующий код в вашем css:

body{
overflow-x:hidden;
}

, тогда Safari не сможет точно рассчитать scrollTop (но это повлияет только на Safari).

Если у вас есть скрытое переполнение css, вы можете удалить его или использовать предложенный обходной путь (также в сообщении):

const scrollTop = Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop)

надеюсь, это поможет

...