jQueryのスムーズスクロールがうまくいかない時

jQueryのスムーズスクロールが効かない・・・
なんでだろう??

解決方法わかりました^^
まずは、正しいコードを

// #で始まるアンカーをクリックした場合に処理 
 $('a[href^="#"]').click(function(){
   // 移動先を50px下にずらす
   var adjust = 50;
   // スクロールの速度
   var speed = 400; // ミリ秒
   // アンカーの値取得
   var href= $(this).attr("href");
   // 移動先を取得
   var target = $(href == "#" || href == "" ? 'html' : href);
   // 移動先を調整
   var position = target.offset().top + adjust;
   // スムーススクロール
   $('body,html').animate({scrollTop:position}, speed, 'swing');
   return false;
 });
​

これの$('a[href^="#"]')の部分
今までは$('a[href^=#]')でよかった。 #をダブルクオテーション (””)で囲まなくて動いたのに、読み込んだjQuery本体が1.12系より前のバージョンのだと、この記述で問題ないそうですが、それ以降のバージョンですとセレクタの仕様に変更があったらしく、 #をダブルクオテーション (””)で囲まないと動かないらしいのです。

知らずに「動かない。。」と焦ってました。
原因がわかって、スッキリしました。

この記事が気に入ったらサポートをしてみませんか?