@deniska93

Почему не работает плавная прокрутка js?

Сделал шапку сайта, в результате должно получится, что при нажатии на ссылку страница должна плавно прокрутиться до нужной секции, но вместо этого сайт просто перезагружается
<header class="header">
	<main class="container">
		<nav class="navbar">
			<button id="burger" class="burger">
				<span></span>
			</button>
			<a class="logo" href=""><img src="assets/images/briefcase.svg" alt=""></a>
			<div id="r-nav" class="r-nav">
				<ul class="navbar-nav">
					<li class="nav-item"><a id="btn-home" href="" class="nav-link"><i class="fas fa-home"></i> Главная</a></li>
					<li class="nav-item"><a id="btn_summary" href="" class="nav-link"><i class="fas fa-address-card"></i> Резюме</a></li>
					<li class="nav-item"><a id="btn_skills" href="" class="nav-link"><i class="fas fa-brain"></i> Знания</a></li>
					<li class="nav-item"><a id="btn_jobs" href="" class="nav-link"><i class="fas fa-briefcase"></i> Работы</a></li>
					<li class="nav-item"><a id="btn_contact" href="" class="nav-link"><i class="fas fa-envelope"></i> Контакты</a></li>
				</ul>
			</div>
		</nav>
	</main>
</header>


и вот сам джс
let btn_home = document.getElementById('btn-home');
let home = document.getElementById('home');
let summary = document.getElementById('summary');

function scrollTo(element) {
	window.scroll({
		left: 0,
		top: element.offsetTop,
		behavior: 'smooth'
	})
}

btn_home.addEventListener('click', () => {
	scrollTo(summary)
})
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
black1277
@black1277
Вольный стрелок
btn_home.addEventListener('click', (e) => {
e.preventDefault()
  scrollTo(summary)
})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@cheeroque
Потому что не нужно оставлять href пустым. Если немного погуглить, можно выяснить, что пустой href работает как перезагрузка текущей страницы.
Ну и preventDefault, конечно, да.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы