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


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

固定ヘッダーがある場合はクラスやIDを指定して高さ調整しちゃいましょう!
JavaScript
固定のヘッダー(ナビ)がある場合はヘッダー分の高さを調整しなければなりません。レスポンシブだと高さが変わってしまいます。そんな時には『ヘッダー』のクラスやIDを指定してあげれば面倒な調整は不要になります。ちなみに今回の『ヘッダー』は『header』を使っています。
▽jQuery(必須)
<script src="//code.jquery.com/jquery-1.11.3.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-1.11.3.min.js使用
See the Pen
【jQuery】ページ内リンクでスムーズスクロール(固定ヘッダーがあったら) by 125naroom (@125naroom)
on CodePen.
外部リンクからのスクロールでもズレません
外部ページのリンクからでも固定ヘッダーの高さを調整しておきましょう。
メモ
jQueryのことで何かわからないことがあればjQueryの日本語リファレンスサイトがあるので一度チェックしてみるといろいろ解決できたりしますよ。
さいごに

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

固定ヘッダーがあってもぴったりですー
関連記事
おすすめ
かんれん
- web / 2020.1.22
- 【jQuery】ページ内リンクでスムーズスクロール(固定ヘッダーがあったら)
- web / 2018.12.25
- 【jQuery】スマホ、タブレットでhoverを有効にする
- web / 2018.12.22
- 【 jQuery】プラグイン『tabs.js』で簡単にタブ切り替え
- web / 2019.8.30
- 【jQuery】slick を使ってスライドショー(横幅いっぱい+前後のスライドを半透明にする)
Googleさんのおすすめ
人気記事
- web / 2019.4.16
- 【CSS】ハンバーガーメニュー実装サンプル集(クリック時のエフェクトも集めました)
- web / 2019.7.22
- 【jQuery】アコーディオン実装サンプル10選
- web / 2019.9.27
- 【jQuery】スライダープラグイン「slick」実装サンプル集
- web / 2019.7.24
- 【jQuery】ページ内リンクでスムーズスクロール(スクロール位置の調整も簡単にできる)
- web / 2019.7.19
- 【CSS】olのリストで①、②、③(丸数字)を表示させる
- web / 2019.10.2
- 【jQuery】モーダルプラグイン『Remodal』の実装サンプル集
- web / 2019.1.22
- 【CSS】三角アイコンと矢印アイコンをつくる
Googleさんのおすすめ
デザインの記事
- 2021.03.01New
- Studio Willen
- 国内、海外のウェブデザイン、パソコン・タブレット・スマートフォンでも見やすいレスポンシブ対応の「あ、いいな」と思うウェブデザインを集めています。
- デザインのこと – Web design gallery
- 2021.03.01New
- Studio Willen
- 国内、海外のウェブデザイン、パソコン・タブレット・スマートフォンでも見やすいレスポンシブ対応の「あ、いいな」と思うウェブデザインを集めています。
- デザインのこと – Web design gallery
- 2021.02.09
- 余白のある家だなと思います/窓の家と生活
- 余白のある家だなと思います この穴なくてもよかったかなと思うことがあります この穴…
- いつかのこと – 無印良品の家と暮らす
- 2021.02.01
- 寝返り、できた
- もくじ 娘ちゃん3か月と24日 あんよを上手に使います 一度覚えたら 2日後 くるんと起き…
- いつかのこと – 無印良品の家と暮らす