Webサイト制作科 - 作品紹介

Webサイト制作科 - 作品紹介

ページの作成

ページの作成

  • jQuery Mobileでは、1つのHTMLに複数のページのコンテンツをまとめて記述します
  • ページの区切りやページ内のレイアウトは、カスタムデータ属性のdata-role属性で定義します
ページの作成 data-role="page"
  • div要素などにdata-role属性「page」を指定すると、HTML内にページを作成できます-data-role="page"を指定した要素には他と重複しないページIDを付け、id属性に記述します
ヘッダーの表示 data-role="header"
  • ページ内にdata-role属性「header」を指定した要素を配置すると、ヘッダーが表示されます
  • ヘッダー内はh1〜h6要素で包んだテキストがセンタリングして表示されます
コンテンツの表示 data-role="content"
  • ページ内にdata-role属性「content」を指定した要素を配置すると、コンテンツ領域として表示されます
フッターの表示 data-role="footer"
  • ページ内にdata-role属性「footer」を指定した要素を配置すると、フッターが表示されます
  • フッター内はh1〜h6要素で包んだテキストがセンタリングして表示されます。


jQuery Mobileではこれら4つを組み合わせることで、最小構成のページを作成できます。

<!DOCTYPE html> 
<html lang="ja"> 
<head> 
<meta charset="UTF-8">
<title>jQuery Mobile Sample</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css">
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js"></script>
</head> 
<body>
<div data-role="page" id="index"> 
<div data-role="header"><h1>ヘッダー</h1></div> 
<div data-role="content">コンテンツ</div> 
<div data-role="footer"><h4>フッター</h4></div> 
</div>
</body>
</html>


jQuery Mobileのページは、1つのHTML内に複数記述できます。
「#page1」というページと「#page2」というページを作成してみます。

<body>
<div data-role="page" id="page1"> 
<div data-role="header"><h1>ページ1</h1></div> 
<div data-role="content">コンテンツ1</div> 
<div data-role="footer"><h4>フッター1</h4></div> 
</div>
<div data-role="page" id="page2"> 
<div data-role="header"><h1>ページ2</h1></div> 
<div data-role="content">コンテンツ2</div> 
<div data-role="footer"><h4>フッター2</h4></div> 
</div>
</body>
  • ブラウザーで確認すると、HTML内に最初に記述しているページ(#page1)の内容だけが表示されます
  • 他のページを表示するには、sample02.html#page2といった具合にURLの後ろにページIDを付けてアクセスする必要があります
  • 各ページへリンクを張るには、a要素のhref属性にページIDを記述します。
<body>
<div data-role="page" id="page1"> 
<div data-role="header"><h1>ページ1</h1></div> 
<div data-role="content">コンテンツ1<br>
<a href="#page2">ページ2</a></div>
<div data-role="footer"><h4>フッター1</h4></div> 
</div>
<div data-role="page" id="page2"> 
<div data-role="header"><h1>ページ2</h1></div> 
<div data-role="content">コンテンツ2</div> 
<div data-role="footer"><h4>フッター2</h4></div> 
</div>
</body>

ダイアログ表示 data-rel="dialog"

  • jQuery Mobileの特殊なページとして、ダイアログがあります
  • ページへのリンクに対してdata-rel属性「dialog」を指定すると、リンク先のコンテンツがページ上に浮いているようにして表示されます
<body>
<div data-role="page" id="page1"> 
<div data-role="header"><h1>ページ1</h1></div> 
<div data-role="content">コンテンツ1<br>
<a href="#page2" data-rel="dialog">ダイアログ</a>
</div>
<div data-role="footer"><h4>フッター1</h4></div> 
</div>
<div data-role="page" id="page2"> 
<div data-role="header"><h1>ダイアログ</h1></div> 
<div data-role="content">ダイアログの内容</div> 
<div data-role="footer"><h4>フッター</h4></div> 
</div>
</body>
  • ダイアログページは拡大しながら表示される「ポップアニメーション」で表示され、ダイアログの左上に「閉じるボタン」が自動的に表示されます

テーマの切り替え

  • jQuery MobileではCSS3を利用したCSSフレームワークが採用されています
  • ページ要素に対してdata-theme属性「a」〜「e」を指定すると、デザインテーマを切り替えられます
<div data-role="page" id="page1" data-theme="b">
  • jQuery Mobileの各UIパーツは指定したテーマに沿ったカラーリングで表示されます
  • ページ全体ではなく指定したパーツだけ個別にもテーマを適用できます
  • テーマを簡単にカスタマイズするには「ThemeRoller」を利用します


ページ遷移

ページ遷移のアニメーションエフェクト
  • トップページ(#index)から各ページへのリンクをタップすると、ページが左右にスライドしながら遷移します
  • jQuery Mobileではさまざまなページ遷移のアニメーションエフェクトが用意されており、a要素に対してカスタムデータ属性「data-transition="エフェクトの種類"」を指定することで変更できます
<a href="#about" data-transition="エフェクトの種類">


スライドアニメーション

  • data-transitionに「slide」を指定すると、ページが左右にスライドして切り替わる「スライドアニメーション」が適用されます
  • jQuery Mobileのデフォルトのアニメーションです
<a href="#about" data-transition="slide">


スライドアップアニメーション

  • data-transitionに「slideup」を指定すると、ページが下から上にスライドして切り替わる「スライドアップアニメーション」が適用されます
<a href="#about" data-transition="slideup">


スライドダウンアニメーション

  • data-transitionに「slidedown」を指定すると、ページが上から下にスライドして切り替わる「スライドダウンアニメーション」を適用できます
<a href="#about" data-transition="slidedown">


ポップアニメーション

  • data-transitionに「pop」を指定すると、ページが拡大しながら切り替わる「ポップアニメーション」を適用できます
<a href="#about" data-transition="pop">


フェードアニメーション

  • data-transitionに「fade」を指定すると、ページがフェードイン/フェードアウトで切り替わる「フェードアニメーション」を適用できます
<a href="#about" data-transition="fade">


フリップアニメーション

  • data-transitionに「flip」を指定すると、ページが回転して切り替わる「フリップアニメーション」を適用できます
<a href="#about" data-transition="flip">


jQuery Mobileではページ遷移の動きを簡単に設定できます。
ただし、さまざまなアニメーションが混在するサイトは一貫性に欠け、ユーザーから見ると煩わしいサイトになりますので、多用しすぎないようにしましょう。
ページ遷移時のアニメーションエフェクトは1種類、特別な場面でもう1種類程度に留めるべきです。

デフォルトアニメーションの変更
  • リンク(ページ)単位ではなく、サイト全体でページ遷移のアニメーションを一括して設定したい場合は、jQueryjQuery Mobileのスクリプトファイルを読み込むscript要素の間に次のようなJavaScriptコードを追加します
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
	$(document).bind("mobileinit", function(){
	$.mobile.defaultTransition = "flip";
	});
</script>
<script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>


アニメーションをオフにする

  • ページ遷移時のアニメーションが不要な場合は、「data-transition="none"」や「data-transition=""」のように存在しないアニメーションエフェクトを指定します
<a href="#about" data-transition="none">
逆のアニメーションを設定する data-direction="reverse"
  • a要素に対してdata-direction属性「reverse」を設定すると、指定したアニメーションと逆向きの動きでリンクを作成できます
  • たとえば、右から左にスライドするアニメーションが設定されているときにreverseを利用すると、ページが左から右にスライドします
<a href="#page1" data-direction="reverse">page1</a>