#131:s scroll to anchor considering header height

This commit is contained in:
SleepWalker 2016-06-03 23:20:56 +03:00
parent 02a18aee13
commit 664a3a6de7

View File

@ -53,6 +53,7 @@ userFactory(store)
}); });
const SCROLL_ANCHOR_OFFSET = 80; // 50 + 30 (header height + some spacing)
/** /**
* Scrolls to page's top or #anchor link, if any * Scrolls to page's top or #anchor link, if any
*/ */
@ -63,11 +64,16 @@ function restoreScroll() {
setTimeout(() => { setTimeout(() => {
const id = hash.replace('#', ''); const id = hash.replace('#', '');
const el = id ? document.getElementById(id) : null; const el = id ? document.getElementById(id) : null;
let y = 0;
if (el) { if (el) {
el.scrollIntoView(); const {scrollTop} = document.body;
} else { const {top} = el.getBoundingClientRect();
window.scrollTo(0, 0);
y = scrollTop + top - SCROLL_ANCHOR_OFFSET;
} }
window.scrollTo(0, y);
}, 100); }, 100);
} }