jQueryでスムーズにページ内リンクを移動する方法

jQueryでスムーズにページ内リンクを移動する方法
この記事は約2分で読めます。
広告

ページ内のリンクになにも設定しない場合、アニメーション無しでカクッと切り替わっちゃって大変不格好。
そんな不格好なページ内リンクを優しくするする~っと移動する方法をご紹介します。
下のコードをjsファイルに張り付けると、ページ内リンクのaタグ全てにスムーススクロールが適応されます。
いまいち動きが分からない方へ、実際にスムーススクロールを使ったdemoも載せておきますので、
ご確認していただけると伝わりやすいかもしれません。

【jQuery】

  $(function() {
    $('a[href^="#"]').on("click", function() {
      var speed = 600;
      var href= $(this).attr("href");
      var target = $(href == "#" || href == "" ? 'html' : href);
      var position = target.offset().top;
      $('body,html').animate({scrollTop:position}, speed, 'swing');
      return false;
    });
  });

【なにも設定しない場合】

See the Pen
スムーススクロール無し
by endebataro (@endebataro)
on CodePen.

【aタグにスムーススクロールを追加した場合】

See the Pen
スムーススクロール有り
by endebataro (@endebataro)
on CodePen.

エンデ・バタローをフォローする
javascriptjQueryサイト制作

埼玉県北本市に越してきて2年と少しになります。以前は東京都の京王線沿線に、その前は神戸の三宮、さらにその前は名古屋の八事霊園近くに住んでいました。

怖い話が大好きで、ネット怪談、ホラー小説、心霊Youtuber(オウマガドキch、ゾゾゾ)を寝る前のお供にしてます。

フロントエンドエンジニアとして9年目のキャリアを積んでおり、figma、Illustrator、Photoshop、WordPress、HTML、CSS(scss)、JavaScript(jQuery)、PHPなど使って日々仕事をしています。

仕事で検索する手間を省くためフロントエンド技術に関するブログを書いています。

エンデ・バタローをフォローする
広告
初めてのブログ

コメント

タイトルとURLをコピーしました