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系より前のバージョンのだと、この記述で問題ないそうですが、それ以降のバージョンですとセレクタの仕様に変更があったらしく、 #をダブルクオテーション (””)で囲まないと動かないらしいのです。
知らずに「動かない。。」と焦ってました。
原因がわかって、スッキリしました。
この記事が気に入ったらサポートをしてみませんか?