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);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage