Для того чтобы при клике на якорь происходило плавное перелистывание к якорю достаточно:
<a href="#anchor">Якорь</a>
<div id="anchor">Блок к которому нужно плавно спуститься</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
$('a[href^="#"]').click(function(){
var el=$(this).attr('href');
$('html, body').animate({
scrollTop:$(el).offset().top
},2000);
return false;
});
Если вы не хотите использовать jquery, то используйте этот код:
const anchors = document.querySelectorAll('a[href*="#"]')
for (let anchor of anchors) {
anchor.addEventListener('click', function (e) {
e.preventDefault()
const blockID = anchor.getAttribute('href').substr(1)
document.getElementById(blockID).scrollIntoView({
behavior: 'smooth',
block: 'start'
})
})
}