можно:
- использовать native механизмы якорей
- использовать якори для передачи координат или селектора на страницу с последующим разбором скриптом и прокруткой
- кукистные костыли
выберем второй:
Скрипт может парсить переменный x/y или scrollTo=selector и прокручивает страницу
также позволяет делать тоже самое в пределах одной страницы, и как бонус парсит переменные с hash
<a href="#x=123&y=100">Scroll to x/y</a>
<a href="#scrollTo=#scrollID">ScrollTo element selector (id)</a>
<a href="#scrollTo=.class">ScrollTo element selector (class)</a>
<a href="path/to/page.php#scrollTo=.class">ScrollTo element selector (class)</a>
function decodeScrollPos(hide) {
var params = {}, el, loc = window.location, hash = loc.hash.substr(1);
hide && (loc.hash = "");
hash.split('&').forEach(function (raw) {
var data = raw.split('=');
data[0] && (params[data[0]] = data[1] || "");
})
setTimeout(function () {
if (params.x || params.y) {
console.log('scroll=', hash);
window.scrollTo(params.x, params.y);
} else if (params.scrollTo) {
(el = document.querySelector(params.scrollTo)) && el.scrollIntoView && el.scrollIntoView(true);
}
}, 100);
return params;
}
window.onhashchange = function () {
decodeScrollPos(true);
}
console.log(decodeScrollPos(true));
Если хотите не показывать hash в адресе после перехода после скроллинга можно его обнулить ..но зачем
window.location.hash="";