2021.12.5|JavaScript(jQuery)

jQuery Mobileを利用してボタンを配置する方法

jQuery Mobileを利用してボタンを配置する方法

jQuery mobileではボタン、リスト、フォーム、ポップアップなど、簡単な指定で設置することができます。 html + cssの設定とは全く異なる指定方法ではありますが、指定方法がわかるようになると簡単です。

jQuery Mobileを利用してボタンを配置する方法を解説します。

jQuery Mobile要素を使ってボタンを配置する方法

1.ボタンを設置する指定要素

ボタンを設置するにはbutton要素、a要素、input要素のいずれかを使います。
jQuery mobileでボタンを指定する要素として3つの要素があります。

 ・「button」で指定する要素  ・「a」で指定する要素  ・「input」で指定する要素(type属性が「submit」「reset」「button」)
button要素で配置
<button class="ui-btn">button 要素</button>
a要素で配置
<a href="#" class="ui-btn">a 要素</a>
submit要素で配置
<input type="button" value="input ボタン">
<input type="submit" value="送信ボタン">
<input type="reset" value="リセットボタン">

実装サンプルを作りましたのでこちらでも確認してみてください。
ボタンサンプル

2.スタイル要素を追加したボタンの種類

jQuery mobileでボタンを指定する方法に加え、角丸やドロップシャドウなどのスタイルも付け加えることができます。

角丸ボタン

※フォームボタンはデフォルトで角丸になっていますので、解除するには、データ属性「data-corners=”false”」を加えます。
※フォームボタンはデフォルトで影がついていますので、解除するには、データ属性「data-shadow=”false”」を加えます。

<button class="ui-btn ui-corner-all">角丸ボタン(button要素)</button>
<a href="#" class="ui-btn ui-corner-all">角丸ボタン(a要素)</a>
<input type="button" value="角丸ボタン(submit要素)" data-corners="false">
角丸に8emとしたボタン
<button class="ui-btn ui-corner-all" style="border-radius: 8em;">角丸に8emとした角丸ボタン(button要素)</button>
<a href="#" class="ui-btn ui-corner-all" style="border-radius: 8em;">角丸に8emとした角丸ボタン(a要素)</a>
ドロップシャドウボタン
<button class="ui-btn ui-shadow">ドロップシャドウボタン(button要素)</button>
<a href="#" class="ui-btn ui-shadow">ドロップシャドウボタン(a要素)</a>
<input type="button" value="ドロップシャドウボタン(submit要素)">
値を設定したドロップシャドウボタン
<button class="ui-btn ui-shadow" style="box-shadow: 4px 4px 4px rgba(0,0,0,.4);">値を設定したドロップシャドウボタン(button要素)</button>
<a href="#" class="ui-btn ui-shadow" style="box-shadow: 4px 4px 4px rgba(0,0,0,.4);">値を設定したドロップシャドウボタン(a要素)</a>

実装サンプルを作りましたのでこちらでも確認してみてください。
ボタンサンプル

3.スタイル要素を加えてボタンを小さく・短くする設定

jQuery mobileでボタンを小さくしたり、短くする場合はスタイル要素を指定することで設定ができます。
ボタンを小さくする場合は「ui-mini」クラスを加え、ボタンを短くする場合は「ui-btn-inline」クラスを加えると指定することができます。
また、文字の白抜きボタンを指定する時は「data-theme」クラスを加え、機能を無効するボタンを指定する時は「ui-state-disabled」クラスを加え、スタイルを無効にするボタンを指定する時は「data-role=”none”」クラスを加えると指定することができます。

小さめのボタン

※フォームボタンには、データ属性「data-mini=”true”」を加えると小さなサイズにすることができます。

<button class="ui-btn ui-mini">小さめのボタン(button要素)</button>
<a href="#" class="ui-btn ui-mini">小さめのボタン(a要素)</a>
<input type="button" value="小さめのボタン(submit要素)" data-mini="true">
短いボタン

※フォームボタンには、データ属性「data-inline=”true”」を加えると短いボタンになります。

<button class="ui-btn ui-btn-inline">短いボタン(button要素)</button>
<a href="#" class="ui-btn ui-btn-inline">短いボタン(a要素)</a>
<input type="button" value="短いボタン(submit要素)" data-inline="true">
文字の白抜きボタン

※フォームボタンは「data-theme」属性で指定します。

<a href="#" class="ui-btn ui-btn-b">文字の白抜きボタン(button要素)</a>
<button class="ui-btn ui-btn-b">文字の白抜きボタン(a要素)</button>
<input type="button" value="文字の白抜きボタン(submit要素)" data-theme="b">
機能を無効するボタン
<button class="ui-btn ui-state-disabled">機能を無効するボタン(button要素)</button>
<a href="#" class="ui-btn ui-state-disabled">機能を無効するボタン(a要素)</a>
スタイルを無効にするボタン
<button data-role="none">スタイルを無効するボタン(button要素)</button>
<a href="#" data-role="none">機能を無効するボタン(a要素)</a>
<input type="button" value="文字の白抜きボタン(submit要素)" data-role="none">

実装サンプルを作りましたのでこちらでも確認してみてください。
ボタンサンプル

4.指定要素を加えてボタンをグループ化(ナビゲーション)して縦や横にする設定

jQuery mobileでナビゲーションの用にひとつの枠にしたい場合は、「data-role=”controlgroup”」を指定するとグループ化することができます。
jQuery mobileでナビゲーションの用にボタンを横並びに指定する時は「data-type=”horizontal”」クラスを加え、縦並びに指定する時は「data-type=”vertical”」クラスを加えると指定することができます。

横に並べるボタン
<div role="main" class="ui-content">
	<div data-role="controlgroup" data-type="horizontal">
		<a href="#" class="ui-btn">ボタン1</a>
		<a href="#" class="ui-btn">ボタン2</a>
		<a href="#" class="ui-btn">ボタン3</a>
		<a href="#" class="ui-btn">ボタン4</a>
	</div>
</div>
縦に並べるボタン
<div role="main" class="ui-content">
	<div data-role="controlgroup" data-type="vertical">
		<a href="#" class="ui-btn">ボタン1</a>
		<a href="#" class="ui-btn">ボタン2</a>
		<a href="#" class="ui-btn">ボタン3</a>
		<a href="#" class="ui-btn">ボタン4</a>
	</div>
</div>

実装サンプルを作りましたのでこちらでも確認してみてください。
ボタンサンプル

ボタンに利用できるクラスと要素

ボタンに利用できるクラス

ボタンを設置する際に利用するクラス要素の一覧をご紹介します。

クラス一覧
クラス 説明
ui-btn ボタンを指定する要素
ui-btn-inline ボタンをテキストの長さに応じた幅で横に並べるインライン要素
ui-corner-all 角丸に指定する要素
ui-mini 小さいサイズに指定する要素
ui-shadow 影を指定する要素
ui-btn-[a-z] 色を指定する要素
ui-state-disabled ボタンを利用不可に指定する要素
ui-btn-icon-top アイコンをテキストの上に指定する要素
ui-btn-icon-right アイコンをテキストの右に指定する要素
ui-btn-icon-bottom アイコンをテキストの下に指定する要素
ui-btn-icon-left アイコンをテキストの左に指定する要素
ui-btn-icon-notext テキストは表示されずアイコンだけのボタンに指定する要素
ui-shadow-icon アイコンに影を指定する要素

ボタンに利用できる要素

ボタンを設置する際にデータ要素一覧をご紹介します。

要素一覧
データ属性 説明
data-corners true | false ボタンに角丸を指定(指定する、指定しない)
data-icon アイコン指定 ボタンにアイコンを指定
data-iconpos left | right | top | bottom | notext アイコンの表示位置を指定
data-iconshadow true | false アイコンに影を指定(指定する、指定しない)
data-inline true | false ボタンにインライン要素を指定(指定する、指定しない)
data-mini true | false 小さいサイズを指定(指定する、指定しない)
data-shadow true | false ボタンに影を指定(指定する、指定しない)
data-theme swatch letter (a-z) ボタンの色を指定(色)

まとめ

クラスも指定要素も簡単に配置できるのが良いですね。
CSSフレームワークのBootstrapに少し似ているところはありますが、css等のコードはjQuery Mobileの方が複雑ではないです。