第6回 サンプルで学ぶjQuery Mobileまとめ(中編)

見出しのテーマの変更

 jQuery Mobileのリスト表示は、ul/ol要素にdata-theme属性でテーマを指定できます。

サンプル26[HTML]


<ul data-role="listview" data-theme="e">
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
</ul>


<画像>25.jpg
リストのテーマを変更した状態

 data-theme属性はul/ol要素の子要素であるli要素にも指定できます。li要素にdata-theme属性を設定すると、個々のリスト項目のテーマを変更できます。

サンプル27[HTML]


<ul data-role="listview">
  <li><a href="#page2">list</a></li>
  <li data-theme="e"><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
  <li><a href="#page2">list</a></li>
</ul>


<画像>26.jpg
個々のリスト項目のテーマも変更できる

ヘッダー/フッターのカスタマイズ

 data-role="header、data-role="footer"で表示したヘッダー/フッターは以下のようにカスタマイズできます。

「戻るボタン」の表示 data-add-back-btn属性「true」

 ページ要素(data-role="page")にdata-add-back-btn属性「true」を指定すると、他のページから遷移してきたときに自動的に「戻るボタン」を表示します。

サンプル28[HTML]


<div data-role="page" id="page2" data-add-back-btn="true"> 
<画像>27.jpg
ページ遷移後に表示される「戻るボタン」

「戻るボタン」のテキストの変更 data-back-btn-text属性

 「戻るボタン」は、デフォルトでは「back」というテキストが表示されます。ボタンのラベルを任意のテキストに変更するには、ページ要素にdata-back-btn-text属性で表示したいテキストを指定します。

サンプル29[HTML]


<div data-role="page" id="page2" data-add-back-btn="true" data-back-btn-text="戻る">


<画像>28.jpg
「戻るボタン」のテキストは任意のテキストが設定できる

ボタンの追加

 ヘッダーには「戻るボタン」以外にも任意のボタンを表示できます。data-role属性「header」を指定した要素内にa要素を記述すると、ボタンとして表示されます。サンプル30では2つのa要素を追加し、それぞれの要素内に「home」「save」というテキストを記述してボタンにしています。

サンプル30[HTML]


<div data-role="header">
  <a href="#page2">home</a>
  <h1>ページ1</h1>
  <a href="#page2">save</a>
</div>


<画像>29.jpg
ヘッダーには任意のボタンを配置できる

 特に指定しない場合、1つ目のa要素がヘッダーのテキストの左側に、2つ目のa要素が右側に表示されます。ボタンを必ず右側に表示したい場合は、class属性「ui-btn-right」を指定します。

サンプル31[HTML]


<div data-role="header">
<h1>ページ1</h1>
<a href="#page2" class="ui-btn-right">save</a>
</div>


<画像>30.jpg
ヘッダーの右に配置したボタン

フッターにボタンを追加

 フッター内に配置したa要素も自動的にボタンに変換されます。ただし、初期値では余白などが反映されていないため、フッター要素の内側に新たな要素を作成し、class属性「ui-bar」を指定します。

サンプル32[HTML]


<div data-role="footer" class="ui-bar">
  <div class="ui-bar">
    <a href="#page2">Remove</a>
    <a href="#page2">Add</a>
    <a href="#page2">Up</a>
    <a href="#page2">Down</a>
  </div>
</div> 


<画像>31.jpg
フッターに配置したボタン

ナビゲーションバーの追加 data-role属性「navbar」

 data-role属性「navbar」を利用すると、ヘッダーやフッターにナビゲーションバーを追加できます。サンプル33ではヘッダーに、サンプル34ではフッターにナビゲーションバーを表示しています。ナビゲーションバーに表示するボタンは、data-role属性「navbar」を付けた要素の内側にリスト(ul/li要素)で記述します。

サンプル33[HTML]


<div data-role="header">
  <h1>ページ1</h1>
  <div data-role="navbar">
    <ul>
      <li><a href="#page2">One</a></li>
      <li><a href="#page2">Two</a></li>
    </ul>
  </div>
</div>


<画像>32.jpg
ヘッダーに追加したナビゲーション

サンプル34[HTML]


<div data-role="footer">
  <div data-role="navbar">
    <ul>
      <li><a href="#page2">One</a></li>
      <li><a href="#page2">Two</a></li>
    </ul>
  </div>
</div>


<画像>33.jpg
フッターに追加したナビゲーション

 ナビゲーションバーはボタンの数(li要素の数)で均等に分割され、数が増えるにつれてボタンは小さくなります。

<画像>34.jpg


ボタンの数が増えると1つ1つのボタンのサイズは小さくなる

 ボタンの数(li要素の数)が6つ以上になると1行に2列ずつ、複数行に分割して表示されます。

<画像>37.jpg
ボタンの数が6つ以上になると行が拡張される

フッター/ヘッダーの固定配置 data-position属性「fixed」

 data-position属性「fixed」を利用すると、ヘッダーやフッターの表示を固定できます。長いページでもヘッダーやフッターが常に表示されている状態になります。

サンプル40[HTML]


<div data-role="header" data-position="fixed">
  <h1>ページ1</h1>
</div> 
<div data-role="content">
  <ul data-role="listview">
    <li><a href="#page2">list1</a></li>
    <li><a href="#page2">list2</a></li>
    <li><a href="#page2">list3</a></li>
    (中略)
    <li><a href="#page2">list8</a></li>
    <li><a href="#page2">list9</a></li>
    <li><a href="#page2">list10</a></li>
  </ul>
</div>
<div data-role="footer" data-position="fixed">
  <h4>フッター1</h4>
</div>


<画像>39-1.png,39-2.png,39-3.png


ヘッダー、フッターを固定するとスクロール中いったん非表示になるが、スクロールが終わると再びヘッダーとフッターが表示される

 ユーザーがページをスクロールさせると、ヘッダー/フッターがフェードアウトして一時的に非表示になり、スクロールが止まるとフェードインで再度表示されます。

共通フッターの使用 data-id属性

 data-position="fixed" でフッターを固定しているときにdata-id属性を設定すると、共通フッターを使用できます。共通フッターとは、サイト内の各ページに共通して表示されるフッターのことで、ページ遷移時にもアニメーションせずに固定され、常にページ下部に表示されます。

 data-id属性にはID名(フッターID)を指定し、共通フッターを使用したいページには同じフッターIDをフッターに記述します。

サンプル41[HTML]


<div data-role="footer" data-position="fixed" data-id="フッターID"><h4>フッター</h4></div>


<画像>40-1.png,40-2.png,40-3.png


共通フッターを利用している場合はアニメーション時もフッターが固定される

フルスクリーンモード data-fullscreen属性「true」

 ヘッダー/フッターを固定配置した状態(data-position="fixed")でページ要素にdata-fullscreen属性「true」を指定すると、フルスクリーンモードを利用できます。フルスクリーンモードでは、ヘッダー/フッターがコンテンツの上に半透明で重なって表示され、コンテンツ領域をタップすると非表示になります(もう一度タップすると再表示されます)。

サンプル42[HTML]


  <div data-role="page" id="page1" data-fullscreen="true"> 
    <div data-role="header" data-position="fixed">
      <h1>ページ1</h1>
    </div>
    <div data-role="content">
       <h2>小見出し</h2>
       <p>本文</p>
       <h2>小見出し</h2>
       <p>本文</p>
    </div>
    <div data-role="footer" data-position="fixed">
      <h4>フッター1</h4>
    </div>
  </div>


<画像>41-1.png,41-2.png
フルスクリーンモードでは全画面でコンテンツが表示され、コンテンツをタップするとフッター/ヘッダーが非表示になる

 次回はjQuery Mobileのそのほかの機能、グリッドレイアウト、開閉パネル、フォーム要素について解説します。


Comments