私は1つのWebページ上にメニューを持っており、そのページのリンクはページを対応するIDのセクションに移動します。しかし、各セクションの上部を覆っている粘着性のあるヘッダーがあるので、私はわずかにスクロールして補正します。ページがアンカーポイントにジャンプした後に画面のスクロール位置を移動しますか?
ページをセクションに移動した後に、ページをスクロールする方法を50px と決めようとしています。各リンクで.click()
イベントリスナーを試してみましたが、コールバックが発行された後にページが移動して、スクロールしようとしたことを否定しているようです。
私のコードは次のようになります。
HTML:
<ul id="menu">
<li id="menu-item-1"><a href="#1">1</a></li>
<li id="menu-item-2"><a href="#2">2</a></li>
<li id="menu-item-3"><a href="#3">3</a></li>
<li id="menu-item-4"><a href="#4">4</a></li>
</ul>
JS:(2つの内部行はコンソールでは動作しなくページのコード自体に)
$('#menu-item-1 a').click(function(){
var y = $(window).scrollTop();
$(window).scrollTop(y-50);
});
リンクアクションが完了するのを待ち受けて、スクロールコードを実行する方法はありますか?
が、私はこのことを考えて、これを行うにはクリーンな方法があったかどうかを確認したかった: は、ここで私が試しているサンプルです。タイムアウトを設定した経験がありましたが、別のブラウザやマシンで別の速度でイベントが発生した場合、ハードコードされた時間制限が機能しない可能性があります。 – AKor
タイマを50msに設定するとうまくいくはずです...これは他の機能を持たないページ内のdivタグへの位置付けであれば、それよりはるかに速くなります –