ウィンドウ サイズが 767px 未満の場合に、フローの後の場所に div を移動する jQuery コードがいくつかあります。すべて正常に動作します。
また、デバイスが 767px 未満の場合、ページの読み込み後にメイン ナビゲーションを超えてメイン コンテンツまでスクロールする jQuery コードもいくつかあります。
scrollTop
機能は正常に動作します。detach()
+insertAfter()
関数は正常に動作します。
しかし…
insertAfter()
コードが影響する単一のページで、コードがscrollTop
間違った領域にスクロールします。要素が移動される前にアンカーがあった場所にスクロールしているようです。
何か案は?このページはhttp://northqueensviewhomes.com/communityにあります (これらの動作を表示するにはブラウザー ウィンドウを縮小する必要があり、スクロール機能を表示するには小さなウィンドウをリロードする必要があることに注意してください)。
2 つの関数とその呼び出しは次のとおりです。</p>
function rearrangeHelpfulLinks() {
var $theLinks = $('#quicklinks.rc.well');
if (($theLinks).length) {
if ($(window).width() <= 767) {
$theLinks.detach().insertAfter('.core-copy');
} else {
$theLinks.detach().insertAfter('#main-nav');
}
}
}
function scrollOnSmallScreen() {
if ($(window).width() <= 767) {
$('html, body').animate({
scrollTop: ($('#main').offset().top - 13)
}, 3210, 'easeInOutExpo');
}
}
ウィンドウのサイズ変更時にinsertAfter()
ルーチンが呼び出されます…</p>
$(window).resize(function() {
rearrangeHelpfulLinks();
});
…そして、スクロール機能はページの読み込み時に呼び出されます (完全を期すために、単純に…)
scrollOnSmallScreen();
私を助けるためにさらに何かが必要かどうかはわかりませんが(再び!)、スクロールを正しい場所、つまり単にアンカーまでスクロールしたいと思い#main
ます。
すべての助けに感謝します。