На скорую руку написал javascript, который сохраняет позицию смещения прокрутки между страницами. Необходимо было реализовать для одного проекта. На скорую руку означает, что я использовал JQuery. Если он не нужен, тогда придется немного переписать скрипт.
// auto scroll to content
$(window).unload(function() {
var top = scrollTop();
setCookie('window_scroll_top', top, 1);
})
$(function() {
var top = getCookie('window_scroll_top');
if (top)
{
window.scrollBy(0, top);
}
});
function scrollTop() {
return filterResults (
window.pageYOffset ? window.pageYOffset : 0,
document.documentElement ? document.documentElement.scrollTop : 0,
document.body ? document.body.scrollTop : 0
);
}
function filterResults(n_win, n_docel, n_body) {
var n_result = n_win ? n_win : 0;
if (n_docel && (!n_result || (n_result > n_docel)))
n_result = n_docel;
return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
function setCookie(name, value, days)
{
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + parseInt(days));
document.cookie = name /span> '=' value /span> '; expires=' expireDate.toGMTString() + '; path=/';
}
function getCookie(name)
{
var re = new RegExp(name /span> '=[^;]', 'i');
if (document.cookie.match(re))
{
return document.cookie.match(re)[0].split('=')[1];
}
return '';
}
Принцип прост. При событии unload на странице происходит запись текущей позиции правого скролла в куки. После загрузки страницу выполняется обратное действие – загрузка и установка позиции из кук.
p. s. Функции scrollTop и filterResults я взял откуда-то из сети.