【jQuery】ページ内リンクでスムーズスクロール(固定ヘッダーがあったら)
- 2020.1.22
- jQuery


するする動くと楽しいですねー

固定ヘッダーがある場合はクラスやIDを指定して高さ調整しちゃいましょう!
JavaScript
固定のヘッダー(ナビ)がある場合はヘッダー分の高さを調整しなければなりません。レスポンシブだと高さが変わってしまいます。そんな時には『ヘッダー』のクラスやIDを指定してあげれば面倒な調整は不要になります。ちなみに今回の『ヘッダー』は『header』を使っています。
▽jQuery(必須)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
▽簡単な説明を記載しています。
$(function(){ var headerHeight = $('header').outerHeight(); // ヘッダーについているID、クラス名など、余白を開けたい場合は + 10を追記する。 var urlHash = location.hash; // ハッシュ値があればページ内スクロール if(urlHash) { // 外部リンクからのクリック時 $('body,html').stop().scrollTop(0); // スクロールを0に戻す setTimeout(function(){ // ロード時の処理を待ち、時間差でスクロール実行 var target = $(urlHash); var position = target.offset().top - headerHeight; $('body,html').stop().animate({scrollTop:position}, 500); // スクロール速度ミリ秒 }, 100); } $('a[href^="#"]').click(function(){ // 通常のクリック時 var href= $(this).attr("href"); // ページ内リンク先を取得 var target = $(href); var position = target.offset().top - headerHeight; $('body,html').stop().animate({scrollTop:position}, 500); // スクロール速度ミリ秒 return false; // #付与なし、付与したい場合は、true }); });
▽JavaScriptには以下の記述でオッケーです。
$(function(){ var headerHeight = $('header').outerHeight(); var urlHash = location.hash; if(urlHash) { $('body,html').stop().scrollTop(0); setTimeout(function(){ var target = $(urlHash); var position = target.offset().top - headerHeight; $('body,html').stop().animate({scrollTop:position}, 500); }, 100); } $('a[href^="#"]').click(function(){ var href= $(this).attr("href"); var target = $(href); var position = target.offset().top - headerHeight; $('body,html').stop().animate({scrollTop:position}, 500); return false; }); });
実装サンプル、ページ内リンクのスクロール(固定ヘッダーがあったら)
▽jquery.min.js(バージョン3.6.0)使用
See the Pen
【jQuery】ページ内リンクでスムーズスクロール(固定ヘッダーがあったら) by 125naroom (@125naroom)
on CodePen.
外部リンクからのスクロールでもズレません
外部ページのリンクからでも固定ヘッダーの高さを調整しておきましょう。
メモ
jQueryのことで何かわからないことがあればjQueryの日本語リファレンスサイトがあるので一度チェックしてみるといろいろ解決できたりしますよ。
さいごに

スクロール楽しいですねー

固定ヘッダーがあってもぴったりですー
関連記事
おすすめ
かんれん
- web / 2019.10.31
- 【CSS】レスポンシブ対応の三角形を作る
- web / 2019.1.24
- 【CSS】吹き出しをつくる
- web / 2019.2.20
- 【CSS】IE11だけ表示崩れしたときのCSSハック
Googleさんのおすすめ
人気記事
- web / 2019.4.16
- 【CSS】ハンバーガーメニュー実装サンプル集(クリック時のエフェクトも集めました)
- web / 2022.2.1
- 【jQuery】アコーディオン実装サンプル10選
- web / 2019.9.27
- 【jQuery】スライダープラグイン「slick」実装サンプル集
Googleさんのおすすめ
デザインの記事
- 2023.10.02New
- Aubloom オーブルーム – RAWSILK SHAMPOO ローシルクシャンプー
- 国内、海外のウェブデザイン、パソコン・タブレット・スマートフォンでも見やすいレスポンシブ対応の「あ、いいな」と思うウェブデザインを集めています。
- デザインのこと – Web design gallery
- 2022.06.15
- ちょっと思い出しただけ
- (C)2022『ちょっと思い出しただけ』製作委員会 もくじ 『ちょっと思い出しただけ』 あ…
- いつかのこと – 無印良品の家と暮らす
- 2023.07.31
- 【Google Chrome】ショートカットキーまとめ(Windows or Mac)
- クロームでF5(更新)ってどうするんでしたっけ? あー、Macですか?わかるわかる、な…
- 125naroom / デザインするところ(会社)です。