フレームワークのダウンロード
以下のURLの「Download Now」からフレームワークをダウンロードしましょう。
今回は現時点で最新である「beta-0.91」を使用します。
http://www.extjs.co.jp/
ダウンロードした「sencha-touch-beta-0.91」フォルダから「ext-touch.js」と「resources→css」フォルダの中の「ext-touch.css」をコピーして適当なフォルダに入れておきます。
タブで切り替わるアプリを作ってみる。
タブで切り替えてhtmlを表示するという簡単なアプリを作ってみたいと思います。
まずはファイルを作成しましょう。
ベースとなる「index.html」、前述のコアプログラムである「ext-touch.js」「ext-touch.css」それに新たにタブアプリのプログラムを記述することになる、「tab.js」「tab.css」の5つを一つのフォルダに入れます。
「ext-touch.js」「ext-touch.css」はまったくいじる必要はないので、「index.html」「tab.js」「tab.css」を作っていきましょう。
ベースとなる「index.html」の作成
処理やテキストなどはJavaScriptに記述することになるので、ここでは各ファイルを読み込むだけです。
index.html
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>タブアプリ</title> <link rel="stylesheet" href="css/ext-touch.css" type="text/css"> <link rel="stylesheet" href="css/tab.css" type="text/css"> <script type="text/javascript" src="js/ext-touch.js"></script> <script type="text/javascript" src="js/tab.js"></script> </head> <body></body> </html>
「tab.js」の作成
tab.js
Ext.setup({ // アイコン設定 icon: 'img/icon.png', // アイコンの光沢設定 glossOnIcon: true, //スプラッシュ画像(iPad) tabletStartupScreen: 'img/tablet_startup.png', //スプラッシュ画像(iPhone) phoneStartupScreen: 'img/phone_startup.png', onReady: function() { new Ext.TabPanel({ fullscreen: true, items: [{ title: 'Tab 1', html: '<h1>1番タブです。</h1><p>はははは。</p>', cls: 'tab1' }, { title: 'Tab 2', html: '<h1>2番タブです。</h1><p>ほほほおほ。</p>', cls: 'tab2' }, { title: 'Tab 3', html: '<h1>3番タブです。</h1><p>ふふふふふふふふふ。</p>', cls: 'tab3' }] }); } });
2-9行目
初期設定をしています。
コメントの通りですが、ブックマークしたときホームに表示されるアイコンと、アイコンから起動したときのスプラッシュ画像などの指定ができます。
2-9行目
ここでタブの処理をしています。
色々設定できますが、最低でもfullscreenをtrueにしないと表示されないようです。
itemsには必要なタブの数だけどんどん追加していきましょう。
title | タブに表示されるテキスト。 |
---|---|
html | コンテンツをhtmlで記述します。 |
cls | cssのクラス名指定 |
「tab.css」の作成
最後にスタイルシートです。
これは「tab.js」で「tab1」「tab2」「tab3」とクラスを指定したので、好きなように装飾してくだけですね。
わかりやすいようにバックグランドの色をそれぞれ変えてみました。
tab.css
.tab1, .tab2, .tab3 { padding: 20px; font-size: 30px; } .tab1 { background: #39C; } .tab2 { background: #F99; } .tab3 { background: #399; } p { font-size: 20px; }