jQuery Mobileバレしない
 モバイルサイトの作り方
                         2012/10/20
             ICT ERA + ABC 2012 東北
      Toru Yoshikawa ( @yoshikawa_t)
Who?
吉川  徹  /  Toru  Yoshikawa
@yoshikawa_̲t
   C.A.Mobile Web先端技術フェロー

   html5j.org/HTML5とか勉強会スタッフ

   Google API Expert ( Chrome )

   日本jQuery Mobileユーザー会

   Sublime Text 2 Japan Users Group

   allWebクリエイター塾/jQuery Mobile担当講師

   Blog: http://d.hatena.ne.jp/pikotea/
著書




「jQuery Mobile パーフェクトガイド」 「HTML5ガイドブック 増補改訂版」(共著)
 http://www.amazon.co.jp/dp/   http://www.amazon.co.jp/dp/
         484433266X                     4844332937
Agenda
1. jQuery Mobile を使った良いサイトとは何か?

2. jQuery Mobile のデザインをカスタマイズする

3. jQuery Mobile 以外のライブラリを利用する

4. まとめ
1. jQuery Mobile を使った
   良いサイトとは何か?


      http://www.jqmgallery.com/
Not cool :(
Cool :)
コンセプトに合わせたデザインを

 中途半端に jQuery Mobile を利用する
 と…?

 jQuery Mobile のデザインに引きずられて
 コンセプトが崩れる

 jQuery Mobile のデザインを塗り替える
jQuery Mobile バレしない
   サイトを作ろう!
2.  jQuery  Mobile  のデザイン
    をカスタマイズする
デザインのカスタマイズ

1. ThemeRollerで大まかなデザインをカスタ
  マイズする

2. 細かなデザインをスタイルを上書きしてカス
  タマイズする
ThemeRollerで大まかなデザイン

                                        フォント

                                        ページの背景色

                                        各UIのカラー

                                        角丸
http://jquery.mobile.com/themeroller/
スタイルで細かなデザイン
  個別に適用する一部のUIへのスタイル指定(従来
  の方法)

  全体に影響するテンプレートとしてのスタイル指定

.ui-header .ui-title {
  /* customize */
}
jQuery Mobile のスタイル構造を知る

  jQuery Mobileが自動的に生成した要素に付与
  されるクラスをカスタマイズする

  デザインの主要な部分を占めるもの

  ✓   ページ

  ✓   ボタン

  ✓   リスト
jQuery Mobile のスタイルの変化を知る

 テーマによるスタイルの変化

 - .ui-body-a ∼ .ui-body-e

 状態によるスタイルの変化

 - .ui-btn-up-c, .ui-btn-hover-c, .ui-btn-down-c

• 機能によるスタイルの変化

 - .ui-corner-all, .ui-shadow, .ui-li-has-thumb
ページ
ページの構造
                ヘッダー
                        .ui-‐‑‒header



 .ui-‐‑‒page
                コンテンツ   .ui-‐‑‒content
.ui-‐‑‒dialog



                フッター
                        .ui-‐‑‒footer
Tips 1 ヘッダーとページの背景色を変更する


          .ui-header { /* ヘッダー背景 */
            background: linear-gradient(top,
          #fff 0%, #fdfcfc 50%, #f5efef 50%,
          #ebe1e1 100%);
            border: 1px solid #bbb;
          }


          .ui-content { /* コンテンツ背景 */
              background: url(images/bg.gif);
          }
ボタン
ボタンの構造
                                           .ui-‐‑‒btn


                                  .ui-‐‑‒btn-‐‑‒inner
.ui-‐‑‒icon
                ボタン

                      .ui-‐‑‒btn-‐‑‒text
Tips2 ボタンの角丸、背景色を変更する




.ui-btn-corner-all { /* 角丸     .ui-btn-up-c,
                               .ui-btn-hover-c,
*/
                               .ui-btn-down-c { /* 背景 */
     border-radius: 0.2em;
}                                  border: 1px solid #bbb;
                                   background: #fff;
.ui-btn-inner { /* ボタンサイズ */       box-shadow: none;
    font-size: 1em;            }
    padding: 0.6em 20px;
}
                               .ui-btn-active { /* 選択時 */
                                   background: #aaa;
                                   box-shadow: inherit;
                                   text-shadow: inherit;
                               }
リスト
リストの構造
.ui-‐‑‒listview
                                                                              .ui-‐‑‒li-‐‑‒has-‐‑‒thumb

   .ui-‐‑‒li            .ui-‐‑‒btn-‐‑‒inner

                                         .ui-‐‑‒btn-‐‑‒text
.ui-‐‑‒btn
                                                     .ui-‐‑‒li-‐‑‒heading
       .ui-‐‑‒link-‐‑‒inherit
                                                                                     .ui-‐‑‒icon
                                                          .ui-‐‑‒li-‐‑‒desc
                    .ui-‐‑‒li-‐‑‒thumb
Tips3 リストを整形する
      .ui-li-thumb { /* サムネイルサイズ */
          padding: 10px;
          max-height: 70px;
          max-width: 70px;
      }


      .ui-li-has-thumb .ui-btn-inner a.ui-
      link-inherit { /* 左余白・リスト高さ */
          min-height: 70px;
          padding-left: 75px;
      }


      .ui-li-heading { /* 見出しフォント */
          font-size: 1.1em;
      }
Tips4 アイコンを変える




icons-18-white.png

icons-36-white.png
Tips 5
ページ遷移アニメーションを利利⽤用しない
$(document).on('mobileinit', function(){
  $.mobile.defaultPageTransition = 'none';
});


   ページ遷移アニメーションは、Android 2.x
   は強制的にfadeにフォールバックされる

   端末によってはチラついたりすることがある
   ので、いっそのこと利用しないのも手
3. jQuery Mobile 以外の
  ライブラリを利用する
例例えば、よくあるスライドショーのようなもの




(サンプルでは、flexsliderを利用)
より高度なカスタマイズ
jQuery Mobile の装飾や動作から除外する領域を作る

✓ data-ajax … Ajaxを無効にする

✓ data-enhance … 装飾を無効にする

jQuery Mobile のイベントを知る

✓ pageinit … ページの初期化

✓ pageshow … ページの表示
jQuery Mobile の装飾や動作から除外する領域を作る

 JSで設定を有効化
 $(document).on('mobileinit', function(){
   $.mobile.ignoreContentEnabled = true;
 });



 data-‐‑‒ajaxとdata-‐‑‒enhanceの設定
 <div data-ajax="false" data-enhance="false">
   <!-- jQuery Mobile free -->
 </div>
イベント: pageinit
• jQuery  Mobile  が最初に初期化する際に発⽣生す
  るイベント

• 同じページを再度度表⽰示する場合は、発⽣生しない
• loadイベントの代わりに利利⽤用するイメージ
$(document).on('pageinit', '#page-id', function(){
  /* 動的なDOMの構築など */
});
イベント: pageshow
• ページを表⽰示するたびに発⽣生するイベント
• Google  Analytics  などのページビューをカウン
  トするようなツールに利利⽤用する

• 座標計算やサイズ計算などを⾏行行うライブラリの
  初期化に利利⽤用する
$(document).on('pageshow', '#page-id', function(){
  /* ページが表示される際に行う初期化など */
});
ライブラリを利用する際の注意点

• 座標計算やサイズ計算などがあるライブラリだと
 pageinitでは正常に動作しない

• pageshowで1回だけ初期化を⾏行行うように次のように
 記述する


$(document).on('pageinit', '#page-id', function(){
  $(this).one('pageshow', function(){
    /* 一度しか必要のないライブラリの初期化 */
  });
});
例)スライドショーを作成するケース(完成形)

$(document).on('mobileinit', function(){
  $.mobile.ignoreContentEnabled = true;
});
$(document).on('pageinit', '#page-id', function(){
  $(this).one('pageshow', function(){
    /* ライブラリの利用 */
    $(this).find('.flexslider').flexslider();
  });
});


<div data-ajax="false" data-enhance="false">
  <!-- スライドショーのマークアップ -->
  <div class="flexslider">
    <ul>...</ul>
  </div>
</div>
4. まとめ
まとめ
jQuery Mobile バレしないサイトを目指そう

✓ 大まかなデザインはThemeRollerで、細かなデザインはス

 タイルを上書きしていく

✓ jQuery Mobileの構造や挙動を知ることによってカスタマ

 イズがやりやすくなる

✓ サードパーティ製のライブラリやツールをうまく利用しよう

✓ デバッグツールは必須
今後のロードマップ
1.3 2012第4四半期(2012年10月∼12月)

✓   レスポンシブデザイン対応(レスポンシブテーブルなど)

1.4 2013第2四半期(2013年1月∼3月)

✓   スクロール領域とタブの追加

1.5 2013第2四半期(2013年4月∼6月)

✓   カルーセル追加

1.6 2013第3四半期(2013年7月∼9月)

✓   マルチパネル対応

1.7 2013第4四半期(2013年10月∼12月)

✓   コードの最適化・パフォーマンスチューニング
日本 jQuery Mobile ユーザー会

https://groups.google.com/group/jqm-jp/

jQuery Mobileに関するノウハウの共有・情報交換



  是⾮非、ご参加ください!
Thank you!!
 ( @yoshikawa_t )
Resources
jQuery Mobile 公式サイト ( http://jquerymobile.com/ )

jQuery Mobile ギャラリー ( http://www.jqmgallery.com/ )

jQuery Mobileパーフェクトガイド ( http://
www.impressjapan.jp/books/3266 ) ※サンプルのダウンロード
ができます

日本 jQuery Mobile ユーザー会 ( https://
groups.google.com/group/jqm-jp/ )

More Related Content

PDF
jQuery Mobileカスタマイズ自由自在 v1.2
PDF
jQuery Mobileカスタマイズ自由自在
PDF
WordPressで提供するWeb API
PDF
WordPressと外部APIとの連携
PDF
jQuery Mobile 最新情報 & Tips
PDF
Tizen Web UI Frameworkでデザインを組み込んでみた
PDF
jQuery Mobileの基礎
PDF
WordBenchTokyo-20111126
jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在
WordPressで提供するWeb API
WordPressと外部APIとの連携
jQuery Mobile 最新情報 & Tips
Tizen Web UI Frameworkでデザインを組み込んでみた
jQuery Mobileの基礎
WordBenchTokyo-20111126

Similar to jQuery Mobileバレしないモバイルサイトの作り方 (20)

PPTX
jQuery Mobile入門
PDF
Jqm20120210
PDF
jQuery Mobile(開発編)勉強会資料
PDF
jQuery Mobile 1.2 最新情報 & Tips
PDF
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
PDF
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
PPTX
JqueryMobile
PDF
2012年8月10日 勉強会
PPTX
スマートフォンサイトデザインに求められるUI/UX設計術
PDF
Jqm20120804 publish
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
PDF
Firefox OSアプリ 「ModeView」
PPTX
ABC2012Spring 20120324
PDF
はじめてのjQueryMobile(初級編)
PDF
jQueryでiTunes Store風スライドショーを作ってみる
PDF
jQuery Mobile 1.3 最新情報
PPTX
Magento meet up Tokyo#1 for Design
PDF
レスポンシブWebデザイン【発展編】
PDF
20110714 j queryベーシック
PDF
Web制作勉強会 #2
jQuery Mobile入門
Jqm20120210
jQuery Mobile(開発編)勉強会資料
jQuery Mobile 1.2 最新情報 & Tips
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
JqueryMobile
2012年8月10日 勉強会
スマートフォンサイトデザインに求められるUI/UX設計術
Jqm20120804 publish
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Firefox OSアプリ 「ModeView」
ABC2012Spring 20120324
はじめてのjQueryMobile(初級編)
jQueryでiTunes Store風スライドショーを作ってみる
jQuery Mobile 1.3 最新情報
Magento meet up Tokyo#1 for Design
レスポンシブWebデザイン【発展編】
20110714 j queryベーシック
Web制作勉強会 #2
Ad

More from yoshikawa_t (20)

PDF
Ionicで作るTechfeed
PDF
困った時のDev toolsの使い方(初心者向け)
PDF
TechFeedというテクノロジーキュレーションサービスを作った話
PDF
Chrome DevTools Awesome 10 Features +1
PDF
これからのモバイルWebと最新動向
PDF
いまさら聞けないHTML5概要
PDF
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
PDF
jQuery Mobile is not dead!
PDF
HTML5開発最前線
PDF
Chrome Apps のデバイスAPI
PDF
Chrome Apps & Chromeウェブストア概要
PDF
Chrome DevTools for beginners v1.2
PDF
モバイル時代のWebパフォーマンス
PDF
モバイル時代のWebパフォーマンスTips
PDF
Chrome apps for mobile 概要
PDF
Chrome Apps 概要
PDF
Chrome Devtools for beginners (v1.1)
PDF
Html5概要 & デモ
PDF
いまさら聞けないCSSレイアウト入門
PDF
Sencha touch vs j query mobile
Ionicで作るTechfeed
困った時のDev toolsの使い方(初心者向け)
TechFeedというテクノロジーキュレーションサービスを作った話
Chrome DevTools Awesome 10 Features +1
これからのモバイルWebと最新動向
いまさら聞けないHTML5概要
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
jQuery Mobile is not dead!
HTML5開発最前線
Chrome Apps のデバイスAPI
Chrome Apps & Chromeウェブストア概要
Chrome DevTools for beginners v1.2
モバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンスTips
Chrome apps for mobile 概要
Chrome Apps 概要
Chrome Devtools for beginners (v1.1)
Html5概要 & デモ
いまさら聞けないCSSレイアウト入門
Sencha touch vs j query mobile
Ad

jQuery Mobileバレしないモバイルサイトの作り方