jQuery:ページスクロール時に「ページトップへ」を表示

WEBページスクロールした時に「ページトップへ」の表示を画面の下の方に出現させるのを見かけることが多くなっています。

jQueryで実装すれば簡単に設置させることが可能です。

長いページの場合など常に「ページトップへ」のリンクが画面にあれば、ユーザビリティ的にも良いと思います。

下記のサイトを参考にさせてもらいました。ありがとうございます。

http://www.webopixel.net/javascript/538.html

今回はjQueryで画面をスクロールした時に画面下部に「ページトップへ」のリンクをフェードさせて表示する方法をメモします。


スクロールした時に「ページトップへ」を表示

js

jQueryを読み込み、スクロールした時の処理を記述します。
最初に「ページトップへ」の要素を非表示にして、指定したスクロール位置を超えた場合に「ページトップへ」の要素をフェードインして表示するようにしています。
また指定したスクロール位置よりもスクロール位置の値が小さい場合はフェードアウトします。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){

    // 「ページトップへ」の要素を隠す
    $('#pagetop').hide();

    // スクロールした場合
    $(window).scroll(function(){
        // スクロール位置が100を超えた場合
        if ($(this).scrollTop() > 100) {
            // 「ページトップへ」をフェードイン
            $('#pagetop').fadeIn();
        }
        // スクロール位置が100以下の場合
        else {
            // 「ページトップへ」をフェードアウト
            $('#pagetop').fadeOut();
        }
    });

    // 「ページトップへ」をクリックした場合
    $('#pagetop').click(function(){
        // ページトップにスクロール
        $('html,body').animate({
            scrollTop: 0
        }, 300);
        return false;
    });

});
</script>

css

スクロールしても位置を固定させる為に「position: fixed;」を指定します。
また、配置する位置を「bottom」「right」で指定します。

<style type="text/css">
#pagetop {
    position: fixed;
    bottom: 10px;
    right: 10px;
}
</style>

html

ページのbody内に「ページトップへ」要素を記述します。

<p id="pagetop"><a href="#">ページトップへ</a></p>

画像を表示させる場合は下記のように指定します。

<p id="pagetop"><a href="#"><img src="pagetop.jpg"></a></p>

上記を設定してスクロールすると指定した位置までスクロールした時に「ページトップへ」要素が表示されるようになります。
スタイルなどを調整すればオシャレな表示になると思います。

jQuery:「Orbit」プラグインを使用したスライドショー

jQueryで画像などのスライドショーする場合、色々なプラグインがあります。
Orbit」プラグインを使ってスライドショーをしてみたので、設置した時の方法を記述します。

Orbit」は下記よりダウンロードすることができます。

http://zurb.com/playground/orbit-jquery-image-slider

jQuery_Orbit

オプションも色々あり、簡単に設置することが可能です。

下記にjQueryの「Orbitプラグインを使って、スライドショーする際の使用方法をメモします。


「Orbit」の使用方法

読み込むファイル

jQueryとOrbitのjsファイル、cssファイルを読み込みます。

<link rel="stylesheet" href="orbit-1.2.3.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.orbit-1.2.3.min.js"></script>

js

スライドショーを行う要素に「orbit()」を指定します。

<script type="text/javascript">
$(function(){
    $('#featured').orbit();
});
</script>

html

スライドショーをしたいコンテンツや画像などを指定した要素に記述します。
divタグやリンクを貼ることも可能です。

<div id="featured">
    <div>test</div>
    <a href="#"><img src="./img/sample1.jpg" /></a>
    <img src="./img/sample2.jpg" />
    <img src="./img/sample3.jpg" />
</div>

上記の設定をしてページにアクセスするとスライドショーが開始します。

また、スライドのスピードを変更したり、ナビゲーションを付けたりなど、
色々なオプションを設定することが可能です。


主なオプションを下記に記述します。

ナビゲーションを表示する場合

「bullets:true」を設定します。

$(function(){
	$('#featured').orbit({
		bullets:true
	});
});

スライドのスピードを変更する場合

$(function(){
	$('#featured').orbit({
		advanceSpeed:4000
	});
});

スライドショーを自動で開始する場合

矢印や右上のストップをクリックした際にスライドショーが止まってしまうので、
自動で開始したい時に下記を指定します。

$(function(){
	$('#featured').orbit({
		startClockOnMouseOut:true,
		startClockOnMouseOutAfter:1000
	});
});

アニメーションのスピードを変更する場合

$(function(){
	$('#featured').orbit({
		animationSpeed:1000
	});
});

アニメーションの種類を変更する場合

フェード:fade
横スライド:horizontal-slide
縦スライド:vertical-slide

$(function(){
	$('#featured').orbit({
		animation:'fade'
	});
});

jQuery:「bxSlider」を使用してスライドショーする方法

jQueryプラグインbxSlider」を使用してスライドショーを設置した時の方法をメモします。

色々なサイトでメインの画像などをスライドさせて出力しているのをよく目にします。

bxSlider」を使用すれば、画像コンテンツ等のスライドショーを簡単に実現することが可能です。
また、オプションも色々あるのでスライド、フェード、ページャーなど自由に設定することができます。

下記サイトのDownloadボタンからダウンロードします。

http://bxslider.com/

下記にjQueryの「bxSliderプラグインを使用して、画像コンテンツスライドショーした時の使用方法を記述します。


bxSliderの使用方法

読み込むファイル

jQueryとダウンロードしたbxSliderを読み込みます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.bxslider.min.js"></script>
<link href="jquery.bxslider.css" rel="stylesheet" />

js

<script type="text/javascript">
$(document).ready(function(){
    $('.bxslider').bxSlider({
        auto: true,
        speed: 1000,
        pause: 2000
    });
});
</script>

自動でスライドするように「auto: true」を指定しています。
指定がない場合はスライドしないです。
「speed」や「pause」でスライドのスピードを調整することができます。
※オプションを設定する時にオプションの末尾に「,」を記述しているとIEで動かない可能性があるので注意が必要です。

html

<ul>
    <li><img src="img/sample1.jpg" /></li>
    <li><img src="img/sample2.jpg" /></li>
    <li><img src="img/sample3.jpg" /></li>
    <li><img src="img/sample4.jpg" /></li>
</ul>

また、divタグで設定することも可能です。
画像ではなくても設置することができます。

<div>
    <div>あいうえお</div>
    <div>かきくけこ</div>
    <div>さしすせそ</div>
    <div>たちつてと</div>
</div>

上記の設定をすれば、簡単に画像やコンテンツのスライドショーをすることができます。
他にも色々なオプションがあるので、すごく使いやすいです。

また、jQueryのバージョンが古くてIEだけ動かないことがあったので、
IEで動かない場合にjQueryのバージョンを確認すると解決するかもしれないです。

jQuery:jQueryのバージョンを確認する方法

jQueryを使用してWEBサイトを制作している時に、使用しているjQueryバージョンを確認することがあります。

新しいプラグインを導入する時など、対応していないバージョンがあるので、jQueryのバージョン確認を行います。
また、jQueryが動かない時なども確認を行います。

そのjQueryバージョン確認する際の簡単な確認方法をメモします。


確認を行いたいページで下記のjavascriptを実行します。

alert($.fn.jquery);

アラートで下記のように表示されます。

jquery_version1


また、ブックマークに下記を登録しておくとページ内に記述しなくても簡単に確認ができます。

javascript:alert($.fn.jquery);

jQueryのバージョンを確認したいページで登録したブックマークを呼び出すと同じようにアラートを出力します。

jquery_version2

※Firefoxで登録した場合


とても便利なのでブックマークにしておくと楽にバージョン確認が行えて良いと思います。

jQuery:「jquery.tile.js」を使用してカラムの高さを揃える

jQueryの「jquery.tile.js」プラグインを使用して、カラム高さ揃える方法をメモします。

「jQueryAutoHeight.js」プラグインでも良いのですが、こちらも使用しやすいです。

「jquery.tile.js」は一行の要素数を数字で指定するだけなので、とても簡単です。

下記のサイトよりダウンロードできます。

http://urin.github.io/jquery.tile.js/

横に並べて表示するカラムなどは高さが揃っていた方がきれいに見えると思うのおすすめです。

下記にjQueryの「jquery.tile.jsプラグインを使った時の使用方法を記載します。


jquery.tile.jsの使用方法

・全てのカラムの高さを揃える

js

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.tile.js"></script>
<script type="application/javascript">
$(function(){
    $('.box').tile();
});
</script>

css

<style type="text/css">
    #main {
        width: 500px;
        margin: 0 auto;
    }
    .box {
        width: 80px;
        padding: 10px;
        border: 1px dashed #5BAEC0;
        margin: 5px;
        float: left;
        display: block;
    }
</style>

html

<div id="main">
    <div class="box">test</div>
    <div class="box">test<br>test<br>test<br>test<br>test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
</div>

表示例

jquery_tile1


・一行ごとの高さで揃える

js

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.tile.js"></script>
<script type="application/javascript">
$(function(){
    $('.box').tile(4);
});
</script>

html

<div id="main">
    <div class="box">test</div>
    <div class="box">サンプル<br>サンプル<br>サンプル<br>サンプル<br>サンプル</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">あいうえおかきくけこさしすせそたちつてと</div>
    <div class="box">test</div>
    <div class="box">test</div>
    <div class="box">test</div>
</div>

表示例

jquery_tile2


※画像を出力する際は、画像を読み込む前にJSが動いてしまうので下記のようにを記述します。

$(window).load(function(){
	$('.box').tile();
});