Onsen UIの機能をいくつか試してみます。
使用前の準備
今回は必要なファイルをダウンロードして使ってみます、
公式サイトにアクセスして、Onsen UIをダウンロードします。
ダウンロードしたファイルを解凍後、cssとjsを読み込ませて、以下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <! DOCTYPE html> < html lang = "ja" ng-app = "app" > < head > < meta charset = "UTF-8" /> < link rel = "stylesheet" href = "./css/onsenui.css" /> < link rel = "stylesheet" href = "./css/onsen-css-components.css" /> < script src = "./js/angular/angular.min.js" ></ script > < script src = "./js/onsenui.min.js" ></ script > < script > var app = angular.module('app', ['onsen']); </ script > </ head > < body > </ body > </ html > |
これで準備完了です。
cssディレクトリ内にテーマの異なるファイルがいくつか入っているので、読み込むcssを変更することでデザインを変更することができます。
今回はAngular.jsを使うようにしていますが、Angular.jsを使わないでOnsen UIを使用することもできます。
詳しくは公式ドキュメントをご確認ください。
ons-navigator
Onsen UIのUIパターンの中からナビゲーション型を使ってみます。
index.html
1 2 3 | < body ng-controller = "app_Ctrl" > < ons-navigator var = "myNav" page = "nav_top.html" ></ ons-navigator > </ body > |
nav_top.html
1 2 3 4 5 6 7 8 | < ons-page ng-controller = "top_Ctrl" > < ons-toolbar > < div class = "center" >トップ</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myNav.pushPage('nav_under.html')" >下層ページへ</ ons-button > </ div > </ ons-page > |
nav_under.html
1 2 3 4 5 6 7 8 9 10 11 | < ons-page ng-controller = "under_Ctrl" > < ons-toolbar > < div class = "left" > < ons-back-button >戻る</ ons-back-button > </ div > < div class = "center" >下層ページ</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myNav.popPage()" >戻るボタン</ ons-button > </ div > </ ons-page > |
JavaScript
1 2 3 4 5 6 7 8 9 10 | var app = angular.module( 'app' , [ 'onsen' ]); app.controller( 'app_Ctrl' , function ($scope) { // アプリ全体 }); app.controller( 'top_Ctrl' , function ($scope) { // トップ }); app.controller( 'under_Ctrl' , function ($scope) { // 下層ページ }); |
index.htmlのons-navigatorで最初に読み込むページ( page=”nav_top.html”)を指定しています。
トップから下層へのページ遷移はng-click=”myNav.pushPage(‘nav_under.html’)”、下層からひとつ前のページに戻る場合はng-click=”myNav.popPage()”で、実際にページ遷移しているのではなく、ons-navigatorの中身を動的に書き換えてページ変更を行っています。
ons-navigatorのデモページ
ons-tabbar
タブ型のUIパターンを使ってみます。
index.html
1 2 3 4 5 6 | < body ng-controller = "app_Ctrl" > < ons-tabbar var = "myTab" > < ons-tab page = "tab_top.html" label = "トップ" active = "true" ></ ons-tab > < ons-tab page = "tab_page.html" label = "タブ2" ></ ons-tab > </ ons-tabbar > </ body > |
tab_top.html
1 2 3 4 5 6 7 8 9 | < ons-page ng-controller = "top_Ctrl" > < ons-toolbar > < div class = "center" >トップ</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myTab.setActiveTab(1)" >タブ2へ</ ons-button > < ons-button ng-click = "myTab.loadPage('tab_under.html')" >下層ページへ</ ons-button > </ div > </ ons-page > |
tab_page.html
1 2 3 4 5 6 7 8 9 | < ons-page ng-controller = "page_Ctrl" > < ons-toolbar > < div class = "center" >タブ2</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myTab.setActiveTab(0)" >トップへ</ ons-button > < ons-button ng-click = "myTab.loadPage('tab_under.html')" >下層ページへ</ ons-button > </ div > </ ons-page > |
tab_under.html
1 2 3 4 5 6 7 8 9 | < ons-page ng-controller = "under_Ctrl" > < ons-toolbar > < div class = "center" >下層ページ2</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myTab.setActiveTab(0)" >トップへ</ ons-button > < ons-button ng-click = "myTab.setActiveTab(1)" >タブ2へ</ ons-button > </ div > </ ons-page > |
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 | var app = angular.module( 'app' , [ 'onsen' ]); app.controller( 'app_Ctrl' , function ($scope) { // アプリ全体 }); app.controller( 'top_Ctrl' , function ($scope) { // トップ }); app.controller( 'page_Ctrl' , function ($scope) { // タブ2ページ }); app.controller( 'under_Ctrl' , function ($scope) { // 下層ページ }); |
inex.htmlのons-tabbarとons-tabでタブを作成していて、active=”true”で最初に表示するページを指定しています。
myTab.setActiveTab(index)でアクティブなタブの変更、myTab.loadPage(ページURL)でタブはそのままでページ遷移を行えます。
ons-tabbarのデモページ
ons-list
リストの表示を試してみます。
index.html
1 2 3 | < body ng-controller = "app_Ctrl" > < ons-navigator var = "myNav" page = "list_top.html" ></ ons-navigator > </ body > |
list_top.html
1 2 3 4 5 6 7 8 9 10 11 12 13 | < ons-page ng-controller = "top_Ctrl" > < ons-toolbar > < div class = "center" >トップ</ div > </ ons-toolbar > < div class = "contents" > < ons-list > < ons-list-header >リストヘッダー</ ons-list-header > < ons-list-item >リスト1</ ons-list-item > < ons-list-item modifier = "tappable" >リスト2</ ons-list-item > < ons-list-item modifier = "chevron" ng-click = "myNav.pushPage('list_under.html')" >リスト3</ ons-list-item > </ ons-list > </ div > </ ons-page > |
list_under.html
1 2 3 4 5 6 7 8 9 10 11 | < ons-page ng-controller = "under_Ctrl" > < ons-toolbar > < div class = "left" > < ons-back-button >戻る</ ons-back-button > </ div > < div class = "center" >下層ページ</ div > </ ons-toolbar > < div class = "contents" > < ons-button ng-click = "myNav.popPage()" >戻るボタン</ ons-button > </ div > </ ons-page > |
JavaScript
1 2 3 4 5 6 7 8 9 10 | var app = angular.module( 'app' , [ 'onsen' ]); app.controller( 'app_Ctrl' , function ($scope) { // アプリ全体 }); app.controller( 'top_Ctrl' , function ($scope) { // トップ }); app.controller( 'under_Ctrl' , function ($scope) { // 下層ページ }); |
リスト表示をする場合はons-listとons-list-itemを(ヘッダーも使用する場合はons-list-headerを)使用します。
タップで反応させたい場合はmodifier=”tappable”を、右側に矢印アイコンを配置したい場合はmodifier=”chevron”をons-list-itemに付与します。
今回使用しているUIパターンはナビゲーション型なので、ページ遷移はng-click=”myNav.pushPage(‘list_under.html’)”になります。
ons-listのデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。