Из-за того, что страница после загрузки сама мгновенно прокручивается к якорю, я делал такой хак: якорь задаётся скрытым тегом (с display: none) перед нужным блоком, тогда при переходе по этой ссылке положение страницы не меняется, а при загрузке к ней не прокручивается. А для плавной прокрутки после загрузки - чючють переделаный код от
Bowen $(window).on('load', function(){
var top = $(window.location.hash+'+*').offset().top;
$('html,body').stop().animate({
scrollTop: top
}, 1000);
});
Кстати, можно и сначала на ready вызвать, а потом и на load, если есть вероятность, что из-за подгрузившихся картинок или скриптов блок может сдвинуться