Могу ли я изменить CSS scroll-поведение с JavaScript? - PullRequest
3 голосов
/ 19 марта 2020

Я пытаюсь сделать так, чтобы моя страница была наверху при перезагрузке страницы. Для этого я использую JavaScript примерно так:

window.onbeforeunload = function() {
   window.scrollTo(0,0);
}

Это прекрасно работало для меня, пока я не включил плавную прокрутку в моем CSS:

scroll-behavior: smooth;

А теперь это вообще не сработает.

Я бы хотел временно отключить CSS плавную прокрутку с JS примерно так:

window.onbeforeunload = function() {
   document.getElementsByTagName("HTML")[0].style.scrollBehavior = "auto";
   window.scrollTo(0,0);
}

Однако похоже, что style.scrollBehavior недействительно, и я не могу найти ничего, что есть. Можно ли изменить это значение на JavaScript?

Если нет, то есть способ включить или выключить плавную прокрутку из JavaScript, что довольно просто?

I просто хотел бы, чтобы все было довольно просто, если это возможно.

1 Ответ

4 голосов
/ 19 марта 2020

Вы можете использовать scrollIntoView с элементом html, передающим smooth в качестве behaviour, например:

element.scrollIntoView({ block: 'start',  behavior: 'smooth' });

Рабочий пример можно увидеть в Как получить кнопку при нажатии go на определенную часть страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...