Onsen UIの機能をいくつか試してみます。
使用前の準備
今回は必要なファイルをダウンロードして使ってみます、
公式サイトにアクセスして、Onsen UIをダウンロードします。

ダウンロードしたファイルを解凍後、cssとjsを読み込ませて、以下のように記述します。
<!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
<body ng-controller="app_Ctrl"> <ons-navigator var="myNav" page="nav_top.html"></ons-navigator> </body>
nav_top.html
<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
<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
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
<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
<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
<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
<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
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
<body ng-controller="app_Ctrl"> <ons-navigator var="myNav" page="list_top.html"></ons-navigator> </body>
list_top.html
<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
<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
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のデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。