Aqui está o que eu uso:
<!-- jquery smooth scroll to id's -->
<script>
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 500);
return false;
}
}
});
});
</script>
A beleza deste é que você pode usar um número ilimitado de links de hash e IDs correspondentes sem precisar executar um novo script para cada um.
Se você estiver usando o WordPress, insira o código no footer.php
arquivo do seu tema antes da etiqueta do corpo de fechamento </body>
.
Se você não tiver acesso aos arquivos do tema, poderá incorporar o código diretamente no editor de postagem / página (você deve editar a postagem no modo Texto) ou em um widget de Texto que será carregado em todas as páginas.
Se você estiver usando qualquer outro CMS ou apenas HTML, poderá inserir o código em uma seção que é carregada em todas as páginas antes da etiqueta do corpo de fechamento </body>
.
Se você precisar de mais detalhes, confira meu post rápido aqui: jQuery smooth scroll to id
Espero que ajude, e deixe-me saber se você tiver dúvidas sobre isso.