Как остановить автоматический скролл при нажатии мышки?
Помогите пожалуйста. У меня есть кнопка плавной прокрутки страницы на сайте. Её код:
let scrollBtn = document.querySelector("#scroll-btn")
for (let link of document.querySelectorAll('a[href^="#"]')) {
link.addEventListener('click', function (e) {
e.preventDefault();
let item = link.getAttribute('href');
document.querySelector(item).scrollIntoView({
block: "center",
behavior: "smooth"
})
})
}
Возможно ли это сделать на чистом JS, без использования JQuery? Я нуб.
Ответы (1 шт):
Автор решения: Zoodogood
→ Ссылка
Я думаю ваша прокрутка должна остановится, если задать новую.
Попробуйте выполнять window.scrollTo( window.scrollX, window.scrollY ); при клике.
Возможно, будет правильнее вместо окна использовать родительский элемент
item.parentNode.scrollTo( window.scrollX, window.scrollY ); так как scrollIntoView прокручивает именно его. Попробуйте оба варианта
link.addEventListener('click', function (e) {
e.preventDefault();
let item = link.getAttribute('href');
document.querySelector(item).scrollIntoView({
block: "center",
behavior: "smooth"
});
const stopScroll = () => item.parentNode.scrollTo( window.scrollX, window.scrollY );
document.body.addEventListener("click", () => stopScroll(), {once: true});
})