2014年に制作した記事を2017/03に加筆修正(2017/05に追記)
スクロールすると表示され、クリックするとページの最上部にスクロールするリンクボタンを設置するコードです。
jqueryを使うので、ライブラリが読み込まれていることが前提です。
IE6では動作しません。(position: fixedがIE6では効かないため)。
いまさら、IE6に対応する必要はないとは思いますが、どうしてもIE6にも対応させたい場合、fixedが効けばいいわけですから、IE6でもfixedを有効にするテクニックなども試してみると、もしかしたら動作するようになるかもです。プラグインなどもおちているようです。
このページ含め、サイト全体で使用しているページトップへ移動するボタンは、ここでご紹介するスクリプトとほぼおなじですが若干違っています。
<span class="btop">ページの上へ戻る</span>
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
.btop{
display: block;
position: fixed;
bottom:10px; /* iphoneなどの場合は70pxぐらいにしたほうが良いかも? */
right:10px;
cursor: pointer;
/* 以降、装飾的な設定 */
}
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
このサンプルではブラウザの右下に上へ戻るボタンを固定しましたが、位置はこれに限りません。
一般に(特に日本では)右利きの人が多いことや、「ページの上へ戻る」という動作上、下のほうにあったほうが直感的にわかりやすいだろうという予測のもと、右下を採用しましたが、肝心のコンテンツを邪魔しないことやターゲットユーザーの特性なども考慮して、ほかに適正な位置があるのであれば、その位置に配置しても良いでしょう。
PCではユーザーがブラウザのサイズを極端に変える可能性があること、スマートデバイスでは画面サイズが小さくまちまちな上に、OSやブラウザの組み合わせによってデフォルトのメニューなどが表示されることも考慮するとよいと思います。場合によっては、ターゲットユーザーがよく利用するほかのサイトで同じような機能を利用している場合は、それらで採用している位置の傾向に合わせると、ユーザーは違和感なく利用してくれるかもしれません。
また、サイト全体ではデザインや位置を統一た方が良いでしょう。
$(function() {
var topBtn = $('.btop');
topBtn.hide();
//スクロールが100に達したらボタン表示
$(window).on('scroll', function() {
if ($(this).scrollTop() > 100) {
topBtn.fadeIn();
} else {
topBtn.fadeOut();
}
});
topBtn.click(function(){
$('body, html').animate({scrollTop:0}, 'fast');
});
});
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
$(function() {
var topBtn = $('.btop');
topBtn.hide();
//スクロールが100に達したらボタン表示
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
if($.browser.msie){
topBtn.show();
}else{
topBtn.fadeIn();
}
} else {
if($.browser.msie){
topBtn.hide();
}else{
topBtn.fadeOut();
}
}
});
topBtn.click(function(){
$('body, html').animate({scrollTop:0}, 'fast');
});
});
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。