If you want to smoothly scroll to an element using jQuery its pretty easy. Heres how:


$("#button").click(function() {
  $('html, body').animate({
    scrollTop: $("#elementtoScrollToID").offset().top
  }, 2000);
});

This will scroll to the element with a speed of 2000ms(2sec).

If you have a fixed header or fixed navigation just add minus the height of it from the offset().top:


$("#button").click(function() {
  $('html, body').animate({
    scrollTop: $("#elementtoScrollToID").offset().top-50px
  }, 2000);
});


Related External Links: