В общем смысле вы можете обновить URL-адрес HTML5 history
без необходимости повторной визуализации браузером:
history.pushState(null, null, '#myhash');
Конечно, вы, вероятно, захотите использовать запасные версии для старых браузеров, иВозможно, вы захотите сделать это только после завершения анимации.
Итак, интегрировано с вашим кодом:
$('.gotoservices').click(function(e){
//Prevent default so the browser doesn't try to do anything
e.preventDefault();
var $hash = "#services";
$('html,body').scrollTo($($hash), 1000, function () {
//If the browser supports HTML5 history,
//use that to update the hash in the URL
if (history.pushState) {
history.pushState(null, null, $hash);
}
//Else use the old-fashioned method to do the same thing,
//albeit with a flicker of content
else {
location.hash = $hash;
}
});
});