2015/03/20
jQuery(Javascript)でページトップへスクロールさせるボタンの実装方法
こんにちは、naouniverse( @naouniverse708 )です。
jQuery(Javascript)でページトップへスクロールさせるボタンを実装していたのですが、記述ミスでうまく動作してないページがあったので、改めて作り直しました。
以下、実装方法の備忘録です。
HTML、CSSでボタンをデザイン
HTMLの部分は以下をbody内に記述します。
<a style="display: block;" class="pagetop" href="#top">↑ Page Top ↑</a>
href では任意の場所を指定します。
そして、CSSでボタンのデザインをします。
シンプルで分かりやすい感じにしました。
ココは要所は抑えつつ、好みで色々いじって良いと思います。
.pagetop{ background-color:rgba(255,0,0,0.8); border-radius:5px; color:#ffffff; padding:8px; position:fixed; /* 表示場所を固定 */ bottom:80px; right:0px; font-family: 'Roboto Condensed', sans-serif; text-decoration: none; z-index: 100; /* 下に入り込むのを回避 */ } /* hover時に色を変える */ .pagetop:hover{ background-color:rgba(0,0,255,0.8); }
GoogleにホストされているjQueryファイルの読み込み
以下をhead内に記述します。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
jQueryでイベントを制御
以下を head 内に記述するか、以下内容の外部jsファイルを作って読み込ませます。
<script type="text/javascript"> jQuery(function(jQuery) { var pagetop = jQuery('.pagetop'); pagetop.hide(); /* 最初は非表示 */ /* ページスクロール時 */ jQuery(window).scroll(function () { if (jQuery(this).scrollTop() > 100) { pagetop.fadeIn(); /* 表示 */ } else { pagetop.fadeOut(); /* 非表示 */ } }); /* ボタンクリック時 */ pagetop.click(function () { jQuery('body, html').animate({ scrollTop: 0 }, 500); return false; }); }); </script>
あとがき
今回まるっと書き直しましたが、割とカンタンに作り直せたので良かったです。
なお、このボタン、スマホ用のページでは実装していません。
ページデザイン上、どうしても邪魔になると感じたのと、もうひとつ理由が。
それについては、下の【関連】記事をご参照あれ。