jQuery scrollTo - Div vertikal im Fenster zentrieren
Ich habe eine Site, die ein festes Menü oben auf der Seite verwendet.
Wenn auf einen Link geklickt wird, sollte dieser vertikal gescrollt werden, sodass die Mitte dieses Ziel-Divs an der vertikalen Mitte des Fensters ausgerichtet ist, versetzt um die Höhe der Kopfzeile. - Dies ist sehr wichtig, damit das Div unabhängig von der Auflösung des Monitors zentriert ist
Ich verwende jQuery und scrollTo, kann aber die dafür erforderliche Mathematik nicht herausfinden.
Hier ist mein Versuch:
function scrollTo(target) {
var offset;
var scrollSpeed = 600;
if (viewport()["width"] > 767 && !jQuery.browser.mobile) {
// Offset anchor location and offset navigation bar if navigation is fixed
offset = $(target).offset().top - document.getElementById('navigation').clientHeight;
} else {
// Offset anchor location only since navigation bar is now static
offset = $(target).offset().top;
}
$('html, body').animate({scrollTop:offset}, scrollSpeed);
}