Ajaxを利用したシンプルなイメージギャラリーを作ってみる - jQuery入門
目次
- jQuery入門
- jQueryのインストール・簡単な使い方
- クイズゲームの作り方
- 秘密の暗号を作ってみよう(たぬき暗号)
- アクションゲームを作ってみよう(ぬりかべ)
- 画像を使ったジグソーパズルを作ってみよう
- もぐらたたきっぽいゲーム
- ドラッグ可能なポップアップウインドウを作ろう
- jQuery UI Sortableで1ラインオセロゲーム
- ブラウザ全体をブロックしてみる
- Geolocation APIを使って都道府県のセレクトボックスを現在地に近い順にソートする
- 発生したイベントの状態を保持・保存する6つのパターン
- Ajaxを利用したシンプルなイメージギャラリーを作ってみる
- テーブルにページ送り(ページング)を実装してみる
- jQuery UI Draggableを使って付箋(sticky)を作ってみる
- カラムでソートできるテーブルを自作してみる
- テーブルを使ったシンプルなドット絵エディタを作ってみる
- iPhoneのようにマウスではじいてスクロール(フリックスクロール)を実装してみる
- テキストフィールドの数値をマウスの上下移動で増減する
- iPhoneのように大きい画像の表示領域をマウスのドラッグで移動してみる
- iPhoneのように画像をダブルクリックした地点を中心に拡大縮小する
- リアルタイムプレビュー付きのHTMLエディタを作ろう
- 保存できる付箋を作ってみる(Cookie、localStorage)
Ajax
jQueryを使うと、「Ajax」処理を簡単に書くことができます。Ajaxとはウェブコンテンツの遷移を「ページ」よりも更に細かいDOM要素単位で指定できる仕組みです。かなりいい加減な解説なので詳しくは検索してみてください。今回は、並んだサムネイルをクリックすると拡大画面が表示されるという、よくあるイメージギャラリーを作ってみます。イメージギャラリーのデモ
各サムネイル画像をクリックすると、Ajaxにより大きな画像と画像名が読み込まれます。写真画像はフリー写真素材 Futta.NET様の素材をお借りしています。ファイル一式
本体ソース・Ajaxで読み込まれるソース・画像・サムネイル画像・ローディング画像をまとめて置いておきます。1.jpg~3.jpgはサムネイルの画像、b1.jpg~b3.jpgはそれに対応する大きな画像となります。ajax_gallery.zip
本体(gallery.html)のソース
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<title>Ajaxイメージギャラリー</title>
<script>
$(function() {
$('img').css({cursor: 'pointer'}).click(function() {
$('#load_area').html('<img src="loading.gif" alt="">');
var html = 'b' + $(this).attr('src')[0] + '.html';
$('#load_area').load(html);
});
});
</script>
</head>
<body>
<p>
<img src="1.jpg" alt="">
<img src="2.jpg" alt="">
<img src="3.jpg" alt="">
</p>
<p id="load_area"></p>
</body>
</html>
プログラムの解説
$('#load_area').html('<img src="loading.gif" alt="">');
Ajaxによるローディングは時間がかかる場合があるので、まずローディング画像を配置しています。
var html = 'b' + $(this).attr('src')[0] + '.html';
$('#load_area').load(html);
クリックされたサムネイル画像(1.jpg~3.jpg)に対応するHTML(b1.html~b3.html)を「<p id="load_area"></p>」の内部に挿入しています。