Плавный якорь

30 Мая 2016
javascript

Для того чтобы при клике на якорь происходило плавное перелистывание к якорю достаточно:

  1. Создать архитектуру
    <a href="#anchor">Якорь</a>
    <div id="anchor">Блок к которому нужно плавно спуститься</div>
    
    
  2. Подключить jQuery
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    
    
  3. Вставить следующий скрипт
    $('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'
        })
    })
}