国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用jQuery Mobile框架將博客快速轉化為Mobile網站

移動開發 移動應用
jQuery Mobile是一個非常不錯的移動端網站應用的解決方案,很多網站都使用jQuery Mobile來生成Mobile手機端的移動網站應用,在過去的GBin1博客文章中,我們曾經使用jQuery Mobile利用RSS訂閱生成過一個簡單的RSS閱讀手機端,在今天的教程中,我們將講解如何將GBin1網站完整的轉化為一個全功能的移動端網站,主要的技術使用jQuery Mobile和Java的SiteMesh布局類庫

使用jQuery Mobile移動開發框架將博客網站快速轉化為Mobile網站

在線演示

jQuery Mobile是一個非常不錯的移動端網站應用的解決方案,很多網站都使用jQuery Mobile來生成Mobile手機端的移動網站應用,在過去的GBin1博客文章中,我們曾經使用jQuery Mobile利用RSS訂閱生成過一個簡單的RSS閱讀手機端,在今天的教程中,我們將講解如何將GBin1網站完整的轉化為一個全功能的移動端網站,主要的技術使用jQuery Mobile和Java的SiteMesh布局類庫

系統設計分析

在我們正式的開始開發之前,我們需要大概的分析一下如何設計Mobile網站,很多網站的移動端應用和網站的內容是分離的,也就是說,桌面訪問網站和移動設備訪問網站的路徑是不同的。

  • 好處是可以分別開發獨立的功能,我們可以針對移動端的用戶設計獨立的UI,展現方式,或者使用方式,往往對于比較大型的網站或者已經上線很久的網站這樣設計成本比較低。
  • 壞處是你需要獨立的維護兩套代碼,無形的增加了開發成本和維護成本 

在我們GBin1的移動設備網站開發中,我們本著盡量維護同一套代碼的原則,希望能夠直接重用網站的頁面內容和框架。值得一提的是,GBin1架 構使用Sitemesh的模板布局功能來生成頁面的不同樣式和布局,而相關的頁面內容及其附屬功能,例如,留言等等都是由靜態頁面或者功能模塊生成,這樣 的設計使得我們可以利用已經存在的頁面內容花最小的代價來創建新的移動設備模板,因而可以快速的生成新的移動端web應用,而且整體結構及其閱讀使用方式 將會和網站本身的使用方式類似,降低了用戶的學習成本。

如何實現?

為了讓系統能夠自動處理應用不同的模板,這里我們使用了一個小技巧:

我們創建一個2級域名, 例如, http://m.gbin1.com,將它通過域名綁定了我們的服務器。然后通過后臺的應用來判斷當前的域名訪問,如果用戶通過http://www.gbin1.com來訪問的話,我們將應用網站模板,如果用戶嘗試使用http://m.gbin1.com來訪問gbin1的時候,我們將使用移動設備模板來展示網站內容。通過這種方法,系統能夠自動的應用不同的模板生成不同的web應用界面。

當然,我們也可以做的更好,自動判斷客戶端的代理類型,如果是移動設備,自動重定向到http://m.gbin1.com,否則重定向到http://www.gbin1.com。

代碼實現

設計和實現基本完成以后,我們正式開始開發網站的移動設備模板,使用jQuery Mobile框架。使用jQuery Mobile框架的好處在于,考慮了不同手機的兼容性并且封裝了現成的UI組件,我們只需要簡單的添加幾個html標簽即可生成對應的頁面,如下:

  1. <div data-role="page"> 
  2.     <div data-role="header"> 
  3.         <a href="/bloghome.html" data-icon="help">首頁</a> 
  4.         <h1 id="logo"></h1> 
  5.         <a href="/portfolio/" data-icon="info">關于</a> 
  6.         <div data-role="navbar" data-iconpos="top" data-theme="a"> 
  7.             <nav> 
  8.  
  9.             </nav> 
  10.         </div><!-- /navbar --> 
  11.     </div><!-- /header --> 
  12.  
  13.     <div data-role="content">    
  14.  
  15.     </div><!-- /content --> 
  16.  
  17.     <div data-role="footer">  
  18.         <h4>&copy; Copywrite by gbin1.com, all rights reserved.</h4>  
  19.     </div>  
  20. </div><!-- /page --> 

以上代碼我們定義了,頁頭,內容和頁腳。

在頁頭中我們添加了兩個按鈕, 首頁和關于

頁腳中我們添加了版權相關信息。

生成頁面內容如下:

m.gbin1.com

為了更好在不同的移動設備上看到展示效果,這里我們使用一個在線測試響應式設計的web工具- Screenqueri.es,使用它能夠幫助你在不同的移動設備上查看網站效果,同時它支持本地localhost應用查看效果,支持不同設備上的預覽,例如,iphone,ipad及其其它設備,并且支持橫豎屏切換,所以對于我們在線調試非常有幫助。

添加相關代碼

接下里我們需要添加一些相關代碼來處理移動設備中的顯示,包括:

  • 圖片
  • 視頻
  • 其它

因為不同的設備的顯示界面尺寸不一樣,為了能夠在小尺寸的設備上正常的顯示頁面,我們需要在加載頁面之前,處理相關圖片,或者視頻的尺寸大小。代碼如下:

  1. $(document).bind('pageinit' , function(){ 
  2.  
  3.     $('img').css({ 
  4.         'max-width':'280px'
  5.         'height':'auto' 
  6.     }); 
  7.  
  8. }); 

注意我們在以上代碼中調用了css方法來處理圖片,這里為了簡單,我們直接將圖片設置為最大寬大為280px,如果你需要支持不同的設備,你可以根據設備不同,處理不同的圖片寬度。

再 請注意這里我們使用了pageinit方法,在正常的jQuery開發中,我們一般使用document.ready() 方法來處理,但是對于jQuery mobile來說,當頁面導航的時候Ajax被用來加載頁面內容,所以DOM ready方法只存在于第一個加載頁面,為了能夠讓每一個頁面都可以執行代碼,所以我們需要在頁面初始化(pageinit)方法中調用相關方法,否則你 會看到除了第一個頁面外以后其它頁面的圖片沒有任何變化。

如果你有其它的代碼需要在也頁面中調用的話,你同樣也可以加載到上面的方法中去。如下:

  1. $(document).bind('pageinit' , function(){ 
  2.  
  3.     $('img').css({ 
  4.         'max-width':'280px'
  5.         'height':'auto' 
  6.     }); 
  7.  
  8.     $('a').each(function(){ 
  9.         var url = $(this).attr('href'); 
  10.         var laststr = url.lastIndexOf(".html"); 
  11.         var lastc = url.charAt(url.length-1); 
  12.         var startc = url.charAt(0); 
  13.         if(laststr<0&&lastc!=='/'&&startc!=='?'){ 
  14.             $(this).attr('href'url + '/'); 
  15.         } 
  16.     }); 
  17.  
  18. }); 

在我們的代碼中,我們需要處理圖片及其url中的地址問題,所以我們將相關的代碼放置到pageinit中。

完整模板代碼如下:

  1. <!DOCTYPE html> 
  2. <!-- By GBin1.com--> 
  3. <%@ page contentType="text/html;charset=utf-8"%> 
  4. <%@ taglib uri="gbin1cms-taglib" prefix="cms" %> 
  5.  
  6. <jsp:useBean id="userInfo" scope="session" class="com.gbin1.core.UserInfo" /> 
  7. <jsp:useBean id="webSite" scope="request" type="com.gbin1.core.WebSite" /> 
  8.  
  9. <html> 
  10. <head> 
  11.         <title><cms:pagetitle /></title> 
  12.         <meta name="description" content="<cms:info id="description" />" /> 
  13.         <meta name="keywords" content="<cms:info id="keywords" />" /> 
  14.         <meta name="author" content="<cms:info id="author" /> (<cms:info id="authorurl" />)" />      
  15.         <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" /> 
  16.         <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
  17.         <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script> 
  18.         <cms:pagehead />  
  19.         <style> 
  20.             #logo{ 
  21.                 background: url('/gbin1/themes/gbin1_mobile/images/logo.png') no-repeat 50% 50%; 
  22.                 height: 30px; 
  23.             } 
  24.  
  25.             #navlist{ 
  26.                 font-size:14px; 
  27.             } 
  28.  
  29.             .ui-btn-text{ 
  30.                 font-size:12px; 
  31.             } 
  32.  
  33.             H1,H2,H3,H4,H5,H6,H7,H8,H9,H10{ 
  34.                 font-size:14px; 
  35.             } 
  36.  
  37.             .ui-header .ui-title{ 
  38.                 font-size:14px; 
  39.             } 
  40.  
  41.             .ui-footer .ui-title{ 
  42.                 font-size:12px; 
  43.                 font-weight: normal; 
  44.             } 
  45.  
  46.             .ui-body-c .ui-link { 
  47.                 text-decoration: none; 
  48.                 font-size:14px; 
  49.                 font-weight: normal; 
  50.             } 
  51.             .ui-btn-text{ 
  52.                 font-weight: normal; 
  53.             } 
  54.             .ui-body-c{ 
  55.                 font-size:14px; 
  56.                 line-height: 20px; 
  57.             } 
  58.             .includetitle{ 
  59.                 background: #E1E1E1; 
  60.                 padding: 5px 5px; 
  61.                 border-left: 3px solid #BBB; 
  62.                 border-radius: 3px 3px 3px 3px; 
  63.             } 
  64.  
  65.             .includenavigation .ui-link, .includenavigation .ui-link:visited{ 
  66.                 color: #ffffff; 
  67.                 text-shadow: 0px 0px 20px #CCC; 
  68.             } 
  69.  
  70.             .includereadmore{ 
  71.                 text-align: right; 
  72.                 padding: 5px; 
  73.                 width: auto; 
  74.                 border-top: 1px solid #CCC; 
  75.             } 
  76.  
  77.             .includenavigation{ 
  78.                 color: #909090; 
  79.                 font-weight: bold; 
  80.             } 
  81.         </style> 
  82.         <script>             
  83.  
  84.             $(document).bind('pageinit' , function(){ 
  85.  
  86.                 $('img').css({ 
  87.                     'max-width':'280px', 
  88.                     'height':'auto' 
  89.                 }); 
  90.  
  91.                 $('a').each(function(){ 
  92.                     var url = $(this).attr('href'); 
  93.                     var laststr = url.lastIndexOf(".html"); 
  94.                     var lastc = url.charAt(url.length-1); 
  95.                     var startc = url.charAt(0); 
  96.                     if(laststr<0&&lastc!=='/'&&startc!=='?'){ 
  97.                         $(this).attr('href', url + '/'); 
  98.                     } 
  99.                 }); 
  100.  
  101.             }); 
  102.         </script> 
  103. </head> 
  104. <body> 
  105. <cms:editor>    
  106. <div data-role="page"> 
  107.     <div data-role="header"> 
  108.         <a href="/bloghome.html" data-icon="help"><%=new String("\u9996\u9875")%></a> 
  109.         <h1 id="logo"></h1> 
  110.         <a href="/portfolio/" data-icon="info"><%=new String("\u5173\u4e8e")%></a> 
  111.         <div data-role="navbar" data-iconpos="top" data-theme="a"> 
  112.             <nav> 
  113.                 <cms:listmenu style="listview" path="root" items="firstlevel" current="link" currentStyle="current" currentPathStyle="ui-btn-active"/> 
  114.             </nav> 
  115.         </div><!-- /navbar --> 
  116.     </div><!-- /header --> 
  117.  
  118.     <div data-role="content">    
  119.         <cms:moduletitle location="left1" /> 
  120.         <cms:ifmodule location="left1"> 
  121.             <cms:module location="left1" alt="left1" /> 
  122.         </cms:ifmodule> 
  123.         <cms:pagebody /> 
  124.     </div><!-- /content --> 
  125.  
  126.     <div data-role="footer">  
  127.         <h4>&copy; Copywrite by gbin1.com, all rights reserved.</h4>  
  128.     </div>  
  129. </div><!-- /page --> 
  130.  
  131. </cms:editor> 
  132. <!-- google and baidu code  
  133. <script type="text/javascript"> 
  134.   var _gaq_gaq = _gaq || []; 
  135.   _gaq.push(['_setAccount', 'UA-19118450-1']); 
  136.   _gaq.push(['_trackPageview']); 
  137.   (function() { 
  138.     var ga = document.createElement('script'); ga.type = 'text/javascript'ga.async = true
  139.     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
  140.     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
  141.   })(); 
  142. </script> 
  143. <script type="text/javascript"> 
  144. var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); 
  145. document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3Fd999331ad5ea0c0930f3aa7c3bda9fc1' type='text/javascript'%3E%3C/script%3E")); 
  146. </script> 
  147. <!-- end of google and baidu code -->    
  148. </body> 
  149. </html> 

搞定!從上面代碼中我們可以看到,使用模板化的網站設計對于添加jQuery mobile移動web網站非常重要,你只需要替換CSS,并且將所有的jQuery Mobile的處理代碼放置到模板中即可,基本無須修改其它結構,即可看到效果。

當然,整個頁面的樣式和風格可能差強人意,不過我們會在以后的文章中,會教大家如何將mobile web應用修改的更好,例如,修改缺省的UI樣式,添加搜索功能等等。

責任編輯:佚名 來源: GBin1.com
相關推薦

2011-07-21 14:57:34

jQuery Mobi

2012-11-15 10:18:51

IBMdw

2011-09-02 10:41:51

2011-07-19 14:51:54

jQuery Mobi特性

2011-09-05 13:45:25

jQuery MobiSencha Touc移動Web UI框架

2012-10-09 09:28:48

jQuery Mobi餐廳訂餐應用

2011-09-01 10:16:43

JQuery Mobi

2011-07-19 17:09:44

jQuery Mobi事件

2011-09-01 10:21:52

jQuery Mobi元素

2011-09-05 16:43:00

jQuery Mobi

2011-05-26 16:28:08

Android jQuery

2011-07-21 16:10:11

button按鈕jQuery Mobi

2011-07-20 14:11:24

響應布局jQuery Mobi

2009-02-17 12:38:21

OperaMobile Linu瀏覽器

2011-07-06 16:26:32

jQuery Mobi

2011-09-01 10:27:42

jQuery Mobi

2011-09-06 16:16:48

jQuery Mobi

2011-09-05 16:47:49

jQuery Mobi

2011-07-19 15:01:16

jQuery Mobi易用性

2011-09-01 15:00:48

jQuery MobiDemo
點贊
收藏

51CTO技術棧公眾號

高清精品xnxxcom| 国产在线播放精品| 成人欧美一区二区三区| 韩国毛片一区二区三区| 8v天堂国产在线一区二区| 久久久精彩视频| 久久精品国产精品青草色艺| 精品freesex老太交| 欧美日韩裸体免费视频| 99久久99| 男人天堂亚洲天堂| 国产成人精品免费网站| 精品国产区一区二区三区在线观看| 色综合久久久久无码专区| 亚洲国产欧美国产第一区| 亚洲天堂福利av| 国产一区红桃视频| 免费a级在线播放| 国产一区二区三区蝌蚪| 最近2019中文免费高清视频观看www99 | 国产婷婷色一区二区三区四区| 中文欧美在线视频| 欧美激情精品久久久久久小说| 欧美理伦片在线播放| 欧美日韩美女视频| 青梅竹马是消防员在线| 久久激情五月婷婷| 久久精品国产久精国产思思| 天堂在线看视频| 黄色免费成人| 日韩精品免费电影| 国产精品天天av精麻传媒| 菠萝蜜一区二区| 精品久久人人做人人爱| 国产xxxxx在线观看| 97欧美在线视频| 精品亚洲va在线va天堂资源站| 国产精彩免费视频| 中文一区在线播放| 久久久福利视频| 麻豆极品一区二区三区| 91动漫在线看| 久久中文久久字幕| 91麻豆.com| 91在线直播亚洲| 欧美精选视频一区二区| 亚洲不卡在线观看| www..com日韩| 亚洲中无吗在线| 一区二区三区视频在线| 在线观看av片| 99视频国产精品| 国产原创精品| 青青草原在线亚洲| 国产精品视频男人的天堂| 亚洲黄色免费av| 欧美日韩美女在线观看| av香蕉成人| 亚洲精品中文字幕在线观看| 亚洲a∨一区二区三区| 亚洲免费福利一区| 日韩av中文字幕在线免费观看| 四虎4545www国产精品| 欧美日韩在线不卡| 999www成人| 丁香婷婷综合激情五月色| 精品欧美一区二区三区久久久| 欧美人妖在线观看| 国产精品一区二区三区在线| 久久夜色电影| 中文日韩在线视频| 国产精品最新| 国产69精品久久久久9999| 美洲精品一卡2卡三卡4卡四卡| 在线亚洲午夜片av大片| 99国产精品一区二区| 久久久久久国产免费| av福利在线导航| 欧美色窝79yyyycom| 天堂综合在线播放| 亚洲精品资源美女情侣酒店| 免费黄色在线视频网站| 夜夜嗨av一区二区三区网页 | 精品人人人人| 日韩欧美一区二区三区四区| 欧美精品国产| 国产精品高潮呻吟久久av黑人| 成人在线不卡| 欧美精品一区二区在线播放| 国产精品久久久久一区二区国产 | www.亚洲成人网| 99精品国产一区二区青青牛奶 | 亚洲三级在线免费观看| 成人观看网址| 欧美videossexotv100| 亚洲成a人片77777在线播放| 欧美人与动牲交xxxxbbbb| 日本91福利区| 亚洲欧美电影在线观看| 母乳一区在线观看| 精品欧美一区二区精品久久| 欧美激情在线一区二区| 欧美国产激情视频| 91视频国产资源| 2021av在线| 欧美一级二级在线观看| 免费av网站在线看| 日本免费久久高清视频| 欧洲美女日日| 99视频在线免费| 亚洲欧洲国产精品| 久久精品一级| 欧美黑人一区二区三区| 91麻豆精品激情在线观看最新| 久久免费视频在线| 国产一区二区三区四区五区入口 | 国内精彩免费自拍视频在线观看网址| 91精品久久久久久久久久久| 888久久久| a级国产乱理论片在线观看99| 中文字幕一区二区三| 性色a∨人人爽网站| 久久伊人91精品综合网站| 国产自产2019最新不卡| av白虎一区| 国产日产欧美一区二区| 国产日韩精品一区二区三区| 婷婷六月国产精品久久不卡| 久久在线视频在线| 成人一级片网址| 少妇一区视频| 亚洲熟妇无码一区二区三区导航| 国产精品久久久久国产精品日日| 亚洲成人精品综合在线| 中文字幕の友人北条麻妃| 综合激情成人伊人| 日本欧美高清| 中文字幕在线视频免费观看| 日韩一级完整毛片| 99在线|亚洲一区二区| 国产激情视频在线| 欧美片一区二区三区| 亚洲色图二区| 高清日韩av电影| 久久99导航| 亚洲第一页在线| 荡女精品导航| www.男人的天堂.com| 欧美成人精品3d动漫h| 日本系列欧美系列| 天堂av在线| 精品少妇一区二区三区在线| 久久福利视频导航| 中文高清一区| 超碰在线97免费| 精品视频123区在线观看| 亚洲看片一区| youjizzxxxx18| 91精品国产高清| 捆绑调教美女网站视频一区| 9i看片成人免费高清| 国产成人精品久久| 另类小说视频一区二区| 成人片免费看| 成人图片小说| 国产日韩欧美精品| 亚洲欧美日韩精品久久奇米色影视| 2021国产精品久久精品| 久草免费在线| 日韩免费在线播放| 91福利视频久久久久| 日本亚州欧洲精品不卡| 欧美日韩一区二区三区在线观看免 | 成人性做爰aaa片免费看不忠| 国产精品夫妻激情| 56国语精品自产拍在线观看| 国产成人av自拍| 教室别恋欧美无删减版| 2020国产在线视频| 中文字幕在线导航| 久久精品二区| 欧美疯狂xxxx大交乱88av| 欧美体内谢she精2性欧美| 国产精品久久久久久妇女| 国产一区二区三区免费不卡| 亚洲国产精品资源| 在线观看日韩av电影| 伊人影院综合在线| 一区三区二区视频| 亚洲一区二区在线免费观看视频 | 国产香蕉一区二区三区| 国产99久久精品一区二区| 欧美tickling挠脚心丨vk| 亚洲欧洲精品成人久久奇米网 | 国产精品二区三区| 久久精品国产清自在天天线 | 在线中文字幕视频| 国产日韩亚洲欧美在线| julia一区二区中文久久94| 久久色在线播放|