
三度の飯よりiPhoneが好き!松本です。iPhoneがつながらないと誇張抜きでテンパリます。
かなりクリーンなソースでiPhoneのトグルスイッチを実現しているコードがあったのでご紹介します。なんてクールなんだ! iPhone向けのサイトも多くなってきている昨今、これからガシガシ役に立つんじゃないでしょうか。
百聞は一見にしかず、まずはデモサイトをご覧ください。
ダウンロードとインストール
iPhone Toggle Switches // Elijah Millerの【Download】から必要ファイルを一式落とします。
jQuery版とprototype版が用意されてるのも素晴らしいですね。私はjQueryに傾倒しているのでjQueryを選択。
HTMLの
内で次のようにJavaScriptとCSSを読み込みます。1 2 3 4 5 | <head> <script type="javascript" src="jquery/jquery-1.3.2.js" /></script> <script type="javascript" src="jquery/iphone-style-checkboxes.js"></script> <link rel="stylesheet" href="style.css" /> </head> |
簡易記述なのでMETAとかはすっ飛ばしています。
HTMLの記述
これがもうシンプルで素晴らしい。非常にクリーンなXHTMLで文法的にも超正しいです。
labelはちょっとした手間でUIに多大な影響を与えます。ぜひマスターしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <ol class="on_off">
// 通常のトグル
<li>
<label class="left" for="on_off">通常のトグルスイッチ</label>
<input type="checkbox" id="on_off" />
</li>
// デフォルトをオン
<li>
<label class="left" for="on_off_on">通常のトグルスイッチ(デフォルト:オン)</label>
<input type="checkbox" checked="checked" id="on_off_on"/>
</li>
</ol>
<ol class="css_sized_container">
// CSSでサイズ指定+ハンドル
<li>
<label class="left" for="css_sized_container">CSSでサイズ指定+ハンドル</label>
<input type="checkbox" id="css_sized_container"/>
</li>
</ol>
<ol class="long_tiny">
// 長いラベル・短いラベル
<li>
<label class="left" for="long_tiny">長いラベル・短いラベル</label>
<input type="checkbox" id="long_tiny"/>
</li>
</ol>
<ol class="onchange">
// 自動トグル切り替え
<li>
<input type="checkbox" id="onchange"/>
<br />
<p>チェックボックスがチェックされている? <strong><span id="status">...</span></strong>.</p>
</li>
</ol> |
見ていただくと分かるんですが、全部チェックボックスなんです!超クリーン。
PHPプログラマとかのデータのやり取りも困らなそうで大変助かります。
JavaScriptの記述
もう一度
内にJavascriptを記述します。設定のようなものです。ここはjQueryを理解していないと若干難しいかもしれませんね……
今は時間がないのでさらっと解説しますが、ご要望があれば全文解説します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $('.on_off :checkbox').iphoneStyle(); $('.css_sized_container :checkbox').iphoneStyle({ resizeContainer: false, resizeHandle: false }); $('.long_tiny :checkbox').iphoneStyle({ checkedLabel: '長いラベルテキスト', uncheckedLabel: '短い' }); var onchange_checkbox = $('.onchange :checkbox').iphoneStyle(); setInterval(function toggleCheckbox() { onchange_checkbox.attr('checked', !onchange_checkbox.is(':checked')).change(); $('span#status').html(onchange_checkbox.is(':checked').toString()); }, 2500); }); </script> |
これで大方動くんじゃないかと思います。素晴らしいスクリプトを提供してくださったElijah Millerさんとオリジナル開発者(?) AWAND-WINNG FJORSさんに感謝!
Thank you Elijah Miller and AWAND-WINNG FJORS!!


