ヘッダーやページトップの追尾系ナビゲーションのソースまとめ
2015年6月9日
最近よく使うのでコピペ用に。
CSSは大事なとこだけメモ。
ヘッダー固定・追尾
ヘッダーのロゴはそのまま上に残してナビゲーションだけ追尾してくるタイプ。
一番上まで戻るとロゴがまた出てくる。
固定した事によりアンカー位置がずれないように注意。
html
ロゴ
css
header nav{ height:45px; } .fixed{ position:fixed; left:0; top:0; z-index:1000; }
js
$(function() { var nav = $('nav ul'); var navTop = nav.offset().top; $(window).on('load scroll', function(){ if ($(this).scrollTop() > navTop) { nav.addClass('fixed'); }else{ nav.removeClass('fixed'); } }); }); //スクロール用 $(function(){ var nav_H = $('nav').height();/*ナビの高さ取得*/ $('a[href^=#]').click(function(){ var speed = 500; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top - nav_H;/*ナビ分の高さをずらす*/ $("html, body").animate({scrollTop:position}, speed, "swing"); return false; }); });
ページトップ追尾ボタン(固定バージョン)
「ページトップ」のボタンが右下に固定表示されるやつ。
スクロールが一番上にくると消える。
html
css
#pagetop{ position: fixed; bottom: 50px; right: 20px; z-index:1000; }
js
$(function() { var topBtn = $('#pagetop'); topBtn.hide(); $(window).on('load scroll', function(){ if ($(this).scrollTop() > 100) {/*100は表示されるタイミングを適当に*/ topBtn.fadeIn(); } else { topBtn.fadeOut(); } }); });
フッターで止まるページトップ追尾ボタン
基本は上と同じだがフッターエリアにくると追尾が止まるパターン。
ポジションでやる方法もあるけどよくpagetopをfloat:rightで右に寄せちゃうからmargin指定で追尾するやつ。
html
css
#pagetop{width:100%;} #pagetop a{ display:block; float:right; }
js
$(function() { var pagetop = $('#pagetop a'); var pagetopH = $('#pagetop a').outerHeight(); var navBottom = pagetop.offset().top; pagetop.hide(); $(window).on('load scroll', function(){ var pagetopA = $(window).outerHeight() + $(this).scrollTop() - pagetopH; var pagetopD = pagetopA - navBottom; if (navBottom >= pagetopA) { pagetop.css('margin-top',pagetopH*-1+pagetopD+'px'); } else { pagetop.css('margin-top',pagetopH*-1+'px'); } /*トップに来たらフェードアウト*/ if ($(this).scrollTop() > 100) { pagetop.fadeIn(); } else { pagetop.fadeOut(); } }); });