jQuery scrollTo - Center Div na janela verticalmente

Eu tenho um site que usa um menu fixo no topo da página.

Quando um link é clicado, ele deve rolar verticalmente para que o centro desse div de destino se alinhe com o centro vertical da janela, compensado pela altura do cabeçalho. - isto é muito importante para que o div esteja centrado, independentemente da resolução do monitor.

Eu estou usando jQuery e scrollTo, mas não consigo descobrir a matemática necessária para isso.

Aqui está minha tentativa:

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

questionAnswers(2)

yourAnswerToTheQuestion