最近よく目にする、ページをスクロールしていくと出てくる「トップへ戻るボタン」をjQueryプラグイン化したので公開します。
ダウンロード
GitHubで公開しています。
使い方
プラグイン読み込み
下記のコードを記述してjQueryとプラグインを読み込みます。head要素の中とかが良いと思います。
<link rel="stylesheet" type="text/css" href="/PATH/TO/jquery.scrollButton/jquery.scrollButton.css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="/PATH/TO/jquery.scrollButton/jquery.scrollButton.js"></script>
設定の記述
head要素の中などに、位置や表示文字などの設定を記述します。
<script type="text/javascript"> jQuery( function( $ ) { $('body').scrollButton( { duration : 200, // フェードのスピード offset : 20, // 右下からの位置 startPosY : 1000, // 何pxスクロールしたら表示するか string : '↑', // ボタン内の文字 target : '#container', // リンク先アンカー名 theClass : 'fadeTopBtn' // ボタンに付与するクラス } ); } ); </script>
上記の設定はデフォルト値です。そのままで良い場合は$(‘body’).scrollButtton()で実行できます。
出力されるコード
上記の設定を記述すると、下記のコードが</body>の直前に出力されます(
target = #container、string = ↑、fadeTopBtn の場合)。
<div id="fadeTopBtn" class="fadeTopBtn"><a href="#container">↑</a></div>
CSSでデザインを調整
付与するclassの指定を得にしていない場合は「fadeToBtn」というclassが付与されます。デフォルトのCSSでは、その「fadeToBtn」というclassにスタイルがあたるようにしています。
/* jquery.scrollButton.css */ .fadeTopBtn a { background-color: #000; display: block; padding: 10px 15px; color: #fff; }
異なるデザインにしたい場合はこのCSSを上書きするか、別のclassを付与するように設定して、オリジナルのCSSを適用します。また、jsの中で強制的に設定されるCSSもありますのでご注意ください。
/* jquery.scrollButton.js */ #fadeTopBtn { opacity: 0; /* startPosYを超えると0.8に */ position: fixed; /* IE6, 7, 8の場合はabsolute */ right: 20px; /* offsetで指定した値 */ bottom: 20px; /* offsetで指定した値 */ }
ダウンロード
GitHubで公開しています。
おまけ
同じく僕が作成したjQueryプラグイン「jquery.smoothScroll.js」と合わせて使うと、ボタンをクリックしたときにスムーズにスクロールするようになります。おすすめです。
IE対策とか
ボタンを右下に固定表示するためには、CSSで「position: fixed」すれば良いのですが、IE6, 7, 8ではposition: fixedが効きません。そこで、IE6, 7, 8ではposition: fixedではなく、スクロールするたびに位置を右下に動かして、固定されているようにみせかけています。
詳細はコードをご確認いただければ。