ページ上部に固定メニューを使用するサイトがあります。
リンクがクリックされると、垂直方向にスクロールして、そのターゲット div の中心がウィンドウの垂直方向の中心に整列し、ヘッダーの高さだけオフセットされるようにする必要があります。-これは、モニターの解像度に関係なくdivが中央に配置されるようにするために非常に重要です
jQuery と scrollTo を使用していますが、これに必要な計算がわかりません。
これが私の試みです:
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);
}