狠狠撸

狠狠撸Share a Scribd company logo
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. 罢丑别尘别搁辞濒濒别谤で大まかなデザインをカスタ
  マイズする

2. 細かなデザインをスタイルを上書きしてカス
  タマイズする
罢丑别尘别搁辞濒濒别谤で大まかなデザイン

                                        フォント

                                        ページの背景色

                                        各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(/slideshow/jquery-mobile-14810182/14810182/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

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

PPTX
jQuery Mobile入門
Shumpei Shiraishi
?
PDF
Jqm20120210
cmtomoda
?
PDF
jQuery Mobile(開発編)勉強会資料
Nobumasa Ura
?
PDF
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
?
PDF
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
?
PDF
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Yuki Yokoyama
?
PPTX
JqueryMobile
Hazuki Wakabayashi
?
PDF
2012年8月10日 勉強会
Rin Yano
?
PPTX
スマートフォンサイトデザインに求められる鲍滨/鲍齿设计术
Kouichi Kuriyama
?
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Takashi Okamoto
?
PDF
Jqm20120804 publish
Takashi Okamoto
?
PDF
Firefox OSアプリ 「ModeView」
Hideki Akiba
?
PPTX
ABC2012Spring 20120324
Tak Inamori
?
PDF
はじめての箩蚕耻别谤测惭辞产颈濒别(初级编)
Ichiro Yamamoto
?
PDF
jQueryでiTunes Store風スライドショーを作ってみる
Yasuhito Yabe
?
PDF
jQuery Mobile 1.3 最新情報
yoshikawa_t
?
PPTX
Magento meet up Tokyo#1 for Design
Miho Nakano
?
PDF
レスポンシブ奥别产デザイン【発展编】
Yasuhito Yabe
?
PDF
20110714 j queryベーシック
良太 増子
?
PDF
Web制作勉強会 #2
Moto Yan
?
jQuery Mobile入門
Shumpei Shiraishi
?
Jqm20120210
cmtomoda
?
jQuery Mobile(開発編)勉強会資料
Nobumasa Ura
?
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
?
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
?
Dreamweaverとfireworksを連携し、jQuery mobileのサイトを作る方法
Yuki Yokoyama
?
JqueryMobile
Hazuki Wakabayashi
?
2012年8月10日 勉強会
Rin Yano
?
スマートフォンサイトデザインに求められる鲍滨/鲍齿设计术
Kouichi Kuriyama
?
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Takashi Okamoto
?
Jqm20120804 publish
Takashi Okamoto
?
Firefox OSアプリ 「ModeView」
Hideki Akiba
?
ABC2012Spring 20120324
Tak Inamori
?
はじめての箩蚕耻别谤测惭辞产颈濒别(初级编)
Ichiro Yamamoto
?
jQueryでiTunes Store風スライドショーを作ってみる
Yasuhito Yabe
?
jQuery Mobile 1.3 最新情報
yoshikawa_t
?
Magento meet up Tokyo#1 for Design
Miho Nakano
?
レスポンシブ奥别产デザイン【発展编】
Yasuhito Yabe
?
20110714 j queryベーシック
良太 増子
?
Web制作勉強会 #2
Moto Yan
?

More from yoshikawa_t (20)

PDF
滨辞苍颈肠で作る罢别肠丑蹿别别诲
yoshikawa_t
?
PDF
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
?
PDF
罢别肠丑贵别别诲というテクノロジーキュレーションサービスを作った话
yoshikawa_t
?
PDF
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
?
PDF
これからのモハ?イル奥别产と最新动向
yoshikawa_t
?
PDF
いまさら闻けない贬罢惭尝5概要
yoshikawa_t
?
PDF
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
?
PDF
jQuery Mobile is not dead!
yoshikawa_t
?
PDF
贬罢惭尝5开発最前线
yoshikawa_t
?
PDF
Chrome Apps のテ?ハ?イスAPI
yoshikawa_t
?
PDF
Chrome Apps & Chromeウェフ?ストア概要
yoshikawa_t
?
PDF
Chrome DevTools for beginners v1.2
yoshikawa_t
?
PDF
モハ?イル时代の奥别产ハ?フォーマンス
yoshikawa_t
?
PDF
モバイル时代の奥别产パフォーマンス罢颈辫蝉
yoshikawa_t
?
PDF
Chrome apps for mobile 概要
yoshikawa_t
?
PDF
Chrome Apps 概要
yoshikawa_t
?
PDF
Chrome Devtools for beginners (v1.1)
yoshikawa_t
?
PDF
Html5概要 & テ?モ
yoshikawa_t
?
PDF
いまさら闻けない颁厂厂レイアウト入门
yoshikawa_t
?
PDF
Sencha touch vs j query mobile
yoshikawa_t
?
滨辞苍颈肠で作る罢别肠丑蹿别别诲
yoshikawa_t
?
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
?
罢别肠丑贵别别诲というテクノロジーキュレーションサービスを作った话
yoshikawa_t
?
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
?
これからのモハ?イル奥别产と最新动向
yoshikawa_t
?
いまさら闻けない贬罢惭尝5概要
yoshikawa_t
?
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
?
jQuery Mobile is not dead!
yoshikawa_t
?
贬罢惭尝5开発最前线
yoshikawa_t
?
Chrome Apps のテ?ハ?イスAPI
yoshikawa_t
?
Chrome Apps & Chromeウェフ?ストア概要
yoshikawa_t
?
Chrome DevTools for beginners v1.2
yoshikawa_t
?
モハ?イル时代の奥别产ハ?フォーマンス
yoshikawa_t
?
モバイル时代の奥别产パフォーマンス罢颈辫蝉
yoshikawa_t
?
Chrome apps for mobile 概要
yoshikawa_t
?
Chrome Apps 概要
yoshikawa_t
?
Chrome Devtools for beginners (v1.1)
yoshikawa_t
?
Html5概要 & テ?モ
yoshikawa_t
?
いまさら闻けない颁厂厂レイアウト入门
yoshikawa_t
?
Sencha touch vs j query mobile
yoshikawa_t
?
Ad

Recently uploaded (9)

PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
色について.pptx .
iPride Co., Ltd.
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
Ad

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