jQuery iPhone UI

jQuery iPhone UI

今月、jQuery-UIのウィジェットの作成に成功したことを同僚に自慢していますが、完成した有用な製品に向けた最後のステップは今日まで不可能でした...


それはすべて、iPhoneアプリケーションの販促サイトを利用するという事実から始まりました。実装は、iPhone自体と多くの共通点を持つ、シンプルで控えめなサイトのアイデアに基づいていました。 そのような推論の結果は、電話の画像を含むページであり、その画面は案内板として機能しました。 しかし、私はそこで止まらないことに決めました-私は対話性と、私がやった「プロトタイプ」にもっと似ていることを望みました-あなたはjQuery iPhone UIライブラリのホームページで試すことができます

最近では、 ハブjQTouchライブラリが発表されました。これは、モバイルデバイス用のWebインターフェースを開発するように設計されています。jQueryiPhone UIライブラリは、デスクトップブラウザー用に設計され、iPhoneインターフェースをシミュレートします


インターフェース


まずは主なもの、つまりiPhoneの「作成」から始めましょう。結局のところ、ここから開発が始まりました。 iphone.cssを接続し、かなり単純なHTMLページ( iPhone GUI PSD 3.0から取得したグラフィック要素)を作成する必要があります。

< link rel = "stylesheet" href = css / iphone.css "type = 'text / css' media = 'all' />

<!-または水平->
< div class = "iphone vertical" >
< div class = "phone" >
< div class = "トップバー" > < / / div >
< div class = "screen" >
< div class = "titlebar" >
iPhone UI
< / div >
< div class = "scroll" >

< / div >
< / div >
< / div >
<a href = "iphone.hohli.com" class = "bigbutton">終了< / a >
< / div >


結果は次の図になります。
iPhone UI vertical

また、iphone.cssには、 100個の アイコンのパックの説明があります
iPhone UI icons

それらを使用するには、 iiconクラスで要素を作成し、必要なアイコンのクラスで<em>要素内に要素を作成する必要があります(他の要素との交差がないように、アイコンクラスのプレフィックスが必要です)。
<a href = "#" class = "iicon"> < em class = "ii-frame" > < / / em >アイコン付きリンク< / / a >


ボタンにはまだ空白があります。ボタンの有用性はわかりませんが、
iPhone UI Buttons

HTMLコード:
<a href = "#" title = "Label" class = "button green">ラベル</a>
<a href = "#" title = "Label" class = "button white">ラベル< / a >
<a href = "#" title = "Label" class = "button black">ラベル< / / a >
<a href = "#" title = "Label" class = "button orange">ラベル</a>
<a href = "#" title = "Label" class = "button red">ラベル< / / >


次に、ウィジェットについて説明します...

ウィジェット


このライブラリには現在、10個のウィジェットと、単純なアルゴリズムでウィジェットの自動初期化を実装するjquery.iphone.jsファイルが含まれています。
  1. 実装されているすべてのウィジェットのリストを取得し、それらがロードされているかどうかを確認します
  2. ロードされた各プラグインの初期化を試みます-処理を必要とする要素にプラグイン名に対応するクラスがあると仮定します(つまり、iscrollクラスを持つすべての要素はiScrollプラグインに供給されます)


jQueryのウィジェットについて話す場合-理解する必要があります-仕事にはjQuery-UIが必要であり、もちろん完全にではなく、コアのみが必要であることを忘れないでください:
< link rel = "stylesheet" href = "css / iphone.css" type = 'text / css' media = 'all' / >
< スクリプト タイプ = "text / javascript" src = "js / jquery.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / jquery-ui.js" > < / / script >
< スクリプト タイプ = "text / javascript" src = "js / jquery.iphone.js" > < / / script >


次に、ウィジェットのリストに直接移動します(すべての写真が対応するデモにつながります)。

imenu


iPhoneの標準オプションメニューのスタイルでメニューを作成します。
iMenuウィジェット

HTMLコード:
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iMenu.js" > < / script >

< ul class = "imenu" >
< li > <a href = "upackinglist / description.html" title = "Description" class = "arrow">説明< / a > < / li >
< li > <a href = "upackinglist / gallery.html" title = "Gallery" class = "arrow">ギャラリー< / a > < / li >
< li > <a href = "#" title = "Try FREE version" class = "external">無料バージョンを試す< / a > < / li >
< li > <a href = "#" title="完全版を購入"class= "external">完全版を購入< span > $ 1.99 < / / span > < / / >> / li >
< / ul >

iMenuManager


特定のウィジェットの主なタスクは、AJAXを使用して「画面」を変更することです。プロジェクトの最初のページとuPackingListアプリケーションのプロモーションページで既にその作業を確認できます。 彼の作品は「電話」と密接に結びついていますが、将来的には修正を試みます。

// class = screenの要素でハングします
$ '.screen' iMenuManager {
link 'a [href!=#]:not(.external)' // AJAXでロードするすべてのリンクを探します
content '.screen' //このセレクター内にあるもののみをロードします
title '.titlebar' //この要素内で、タイトルを探します
back '.titlebar' //この要素内の戻るボタンを押す
} ;


iTabs


アイコン付きのタブ、簡単な初期化:
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iTabs.js" > < / / script >
< スクリプト タイプ = "text / javascript" >
$(ドキュメント).ready(関数(){
$( "。tabbar")。iTabs();
});
< / スクリプト >

< ul class = "tabbar" >
<!-リンクはタブの識別子を指します->
< li > <a class = "iicon" href = "#mail" title = "Mail"> < em class = "ii-envelope" > < / / em >メール< / a > < / li >
< li > <a class = "iicon" href = "#chat" title = "Chat"> < em class = "ii-chat2" > < / / em >チャット< / a > < / li >
< li > <a class = "iicon" href = "#search" title = "Search"> < em class = "ii-magnify" > < / / em >検索< / a > < / li >
< li > <a class = "iicon" href = "#options" title = "Options"> < em class = "ii-gear2" > < / / em >オプション< / a > < / li >
< / ul >

< div id = "mail" title = "Mail" > ... < / / div >
< div id = "chat" title = "Chat" > ... < / / div >
< div id = "search" title = "Search" > ... < / / div >
< div id = "options" title = "Options" > ... < / / div >


予測可能な結果:
iTabsウィジェット

iScroll


垂直スクロール、当初はアイデア/コードは取り払われました: jQueryを使用したiPhone UIチャームの実装ですが、さらに処理することで、完全かつ独立した製品であることがわかりました。

iScrollウィジェット

動作するにはjQuery Mousewheelプラグインが必要で、オプションでdisableTextSelectプラグインを接続できます。カーソルでスクロールすると、テキストは選択されません。

HTMLコード:
< スクリプト タイプ = "text / javascript" src = "js / other / jquery.disable.text.select.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / other / jquery.mousewheel.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iScroll.js" > < / script >

< div class = "iscroll" style = "height:200px;" >
Lorem Ipsum ...
< / div >


iGallery


写真のギャラリー、画像をスクロールするには、iPhoneインターフェースと同様に、「ドラッグアンドドロップ」する必要があります。

iGalleryウィジェット

HTMLコード:
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iGallery.js" > < / / script >

< div class = "igallery" style = "width:320px; height:480px" >
< img src = "images / home.jpg" alt = "ホーム画面" / >
< img src = "images / list.jpg" alt = "" / >
< img src = "images / list_edit.jpg" alt = "" / >
< / div >


フォーム要素


以下は、通常のフォーム要素を置き換えるウィジェットのセット全体です。


HTMLコード:
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iInput.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iPassword.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iCheckBox.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iRadioButton.js" > < / / script >
< スクリプト タイプ = "text / javascript" src = "js / ui / ui.iSelect.js" > < / script >

< スクリプト タイプ = "text / javascript" src = "js / other / jquery.dPassword.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / other / jquery.backgroundPosition.js" > < / script >
< スクリプト タイプ = "text / javascript" src = "js / other / jquery.mousewheel.js" > < / script >

< 入力 クラス = "iinput" タイプ = "テキスト" id = "ログイン" 名前 = "ログイン" = "" / >
< 入力 クラス = "ipassword" タイプ = "パスワード" id = "パスワード" 名前 = "パスワード" = "" / >

< input class = "icheckbox" type = "checkbox" id = "remember" name = "remember" value = "1" / > < label for = "remember" > remember me < / / label >

< 入力 クラス = "icheckbox" type = "checkbox" id = "noremember" name = "noremember" value = "1" checked = "checked" / > < label for = "noremember" > forgot me < / / label >

< 入力 クラス = "iradiobutton" type = "radio" name = "type" id = "type_abc" value = "ABC" checked = "checked" / > < = for "type_abc" > ABC < / / label >
< 入力 クラス = "iradiobutton" type = "radio" name = "type" id = "type_def" value = "DEF" / > < ラベル = = "type_def" > DEF < / / label >
< 入力 クラス = "iradiobutton" type = "radio" name = "type" id = "type_ghi" value = "GHI" / > < label for = "type_ghi" > GHI < / / label >

< select class = "iselect" name = "options" style = "width:100%" >
< オプション >オプション1 < / / オプション >
< option selected = "selected" >オプション2 < / / オプション >
< オプション >オプション3 < / / オプション >
< オプション >オプション4 < / / オプション >
< / 選択 >


結果:
フォーム要素ウィジェットiSelectウィジェット

PS


バグに気づいたら、 レポートを書き 、Googleアカウントを持っていないなら、コメントに書いてください...

私のブログのRSSはhttp://anton.shevchuk.name/feed/で入手でき、twitterはhttp://twitter.com/AntonShevchukで入手できます

Source: https://habr.com/ru/post/J68915/


All Articles