Cupom de US$10 da Digital Ocean

Scroll suave com jQuery

Scroll suave com jQuery Neste código demonstramos uma maneira simples de realizar um scroll suave entre âncoras dentro de uma mesma página, utilizando alguns métodos da biblioteca jQuery.

$(function() {
  $('a[href*="#"]:not([href="#"])').click(function() {

    var target = $(this.hash);

    if (target.length) {
      $('html, body').animate({ scrollTop: target.offset().top }, 1000);
      return false;
    }

  });
});
Explicando o código:
  • $('a[href*="#"]:not([href="#"])') - Adicionamos um evento de clique em todos os elementos de ancora que seus hrefs sejam ids de outros elementos;
  • var target = $(this.hash); - this.hash retorna somente a hash da URL contida em um atributo href;
  • if (target.length) - Retorna o lenght dos elementos. Caso retorne 0, ou seja, nenhum elemento encontrado com este id, não faz nenhuma ação;
  • $('html, body').animate({ scrollTop: target.offset().top }, 1000); - Anima o scrollTop do html e body até o offset().top do elemento, ou seja, faz o html ir até o elemento passado como href.
Veja o código funcionando:

Compartilhe

URL

Você também pode gostar de:

Comentários