
ヘッダー固定してページ内リンクすると、ヘッダーの高さ分ずれてリンク先へ遷移します。
jQueryで直す時、最初うまくいかなかったのでメモしておきます。
CSSでずれを回避する方法
cssで調整するなら、下記のような書き方でずれが直ります。
#info {
margin-top: -180px;
padding-top: 180px;
}
jQueryでずれを回避する方法
css簡単でいいのですが、どうせならスムーズスクロールしたかったので、jQueryを使いました。
// スムーズスクロール
$(function () {
var headerHight = 180; //ヘッダの高さ
$('a[href^=#]').click(function(){
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top-headerHight; //ヘッダの高さ分位置をずらす
$("html, body").animate({scrollTop:position}, 550, "swing");
return false;
});
});
html内で読み込むjQueryですが、どうやら1.12.0以降のものだとうまく動かないようです。
最初、2.2.0を読み込んでいて、うまく動かなかったんですが、jQueryのバージョンを1.11.3にしたら動きました。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
◆下記を参考にしました◆
position:fixedでヘッダ固定時のページ内リンクのずれを解消したい
http://www.tam-tam.co.jp/tipsnote/html_css/post4776.html

