Hier 2 Snippets aus meinem Fundus.
Anchornav:
	PHP-Code:
	
anchornav.find('a').on('click', function(ev) {
  ev.preventDefault();
  $('html, body').animate({
    scrollTop: $($(this).prop('hash')).offset().top - $('header').outerHeight() - 30
  }, 400);
}); 
 Das hier von j_accordion-extended.html5:
	PHP-Code:
	
...
activate: function(event, ui) {
  ...
  /** Scroll active accordion to top */
  if(ui.newHeader.length > 0) {
    var
      previousTogglerHeight = ui.newHeader.closest('.ce_accordion').prev('.ce_accordion').find('.toggler').outerHeight() || 0,
      previousAccordionMarginBottom = parseInt(ui.newHeader.closest('.ce_accordion').prev('.ce_accordion').css('margin-bottom')) || 0
    ;
    if(previousTogglerHeight)
    {
      $('html, body').animate({scrollTop: ui.newHeader.offset().top - previousTogglerHeight - previousAccordionMarginBottom - 5}, 300);
    }
  }
  /** Scroll active accordion to top - END */
}
... 
 Vielleicht kannst du dir da was abschauen. In der Konsole auch immer nach JS-Fehlern Ausschau halten.
Das hier ist bestimmt falsch.
	PHP-Code:
	
$(hash).offset().top
console.log(hash); 
 Ich glaube in hash ist die Raute "#" nicht mit drin.