easy Html5 - Jquery Mobile之Pages&Dialogs


 

jquery 在web js框架上的風暴還在繼續卻也隨着移動終端走向了mobile;那么jquery mobile到底包括些什么呢

簡介

        Jquery Mobile里的一個Page並非同於我們的一個html頁面;而是一個一個基於它的Page容器的一個div ;這就允許我們可以再一個html文件中創建多個Page頁面,這樣的好處是,在客戶端發送請求后僅需要請求一次html內容;其它的各種功能和操作都已經到客戶端了;而且html也只是各種框架性的結構,內容的操作要基於js的Ajax請求;這樣才能給用戶超普通website的體驗;當然如果大量的html Tag在第一次請求就返回給客戶端將會導致請求慢,渲染慢等問題;所以我們需要做適當的划分,而且首次渲染的html內容要盡量少(推薦使用jquery Template);而且框架支持多page,多頁面切換時的效果動畫,還可以將頁面顯示為對話框形勢;

         不同的是,在處理鏈接外部頁面、鏈接同頁面的”Page”,后退、重定向及目錄鏈接有所不同;這會在下面詳細介紹;

頁面

         Jquery Mobile是基於HTML5的,Jquery Mobile網站必須使用HTML5文檔聲明開始;我們要使用它的主題css,所以在頁面Title里需要引用對應的主題css樣式文件還有js庫;當然具體引用路徑要看這些文件是怎么組織的了;

<!DOCTYPE html> 
<html>
<head>
    <title>Easy 酒店</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link href="../css/jquery.mobile.structure-1.1.0.css" rel="stylesheet" type="text/css" />
    <link href="../theme/lightGray/EH_lightGray.css" rel="stylesheet" type="text/css" />
    <link href="../css/Common.css" rel="stylesheet" type="text/css" />
    <script src="../js/jquery-1.7.2.js" type="text/javascript"></script>
    <script src="../js/jquery.mobile-1.1.0.js" type="text/javascript"></script>
</head>

 

         Jquery Mobile的”Page”是一個帶有data-role="page"的div容器,這個容器一般有三個直接div子節點而且分別用data-role="header",data-role=”content”,data-role=”footer”標記;這主要是做區域划分,即將這個Page容器分割為頭、內容、腳三塊;然后開發者再分別在不同塊里添加其他內容;http://jquerymobile.com/demos/1.1.0/docs/api/data-attributes.html這里你可以看到所有你可以使用的屬性標簽;

<!DOCTYPE html> 
<html>
<head>
    <title>Easy 酒店</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link href="../css/jquery.mobile.structure-1.1.0.css" rel="stylesheet" type="text/css" />
    <link href="../theme/lightGray/EH_lightGray.css" rel="stylesheet" type="text/css" />
    <link href="../css/Common.css" rel="stylesheet" type="text/css" />
    <script src="../js/jquery-1.7.2.js" type="text/javascript"></script>
    <script src="../js/jquery.mobile-1.1.0.js" type="text/javascript"></script>
</head>
<body>
    <div data-role="page">

        <div data-role="header">
            <h1>Easy Hotel</h1>
        </div><!-- /header -->

        <div data-role="content">    
            <p>Page content goes here.</p>        
        </div><!-- /content -->

        <div data-role="footer">
            <h4>&copyJohnny2012 Mail:johnny@163.com</h4>
        </div><!-- /footer -->
    </div><!-- /page -->
</body>
</html>

 

這樣它就已經有效果了,這就是一個簡單的Page頁了;

image

 

內部鏈接如何多頁

既然每個page都只是一個帶有data-role=”page”的div,那我們在我們的頁面上多創幾個了;關於他們之間怎么互鏈,只需要給各個Page的div添加ID屬性,鏈接時href制定為#pageID就可以了

View Code
 <div id="pageSearch" data-role="page">

        <div data-role="header">
            <h1>Easy Hotel</h1>
        </div><!-- /header -->

        <div data-role="content">    
            <a href="#pageList">List Page</a>        
          
        </div><!-- /content -->

        <div data-role="footer">
            <h4>Easy Hotel</h4>
        </div><!-- /footer -->
    </div><!-- /page -->

    <div id="pageList" data-role="page">

        <div data-role="header">
            <h1>Hotel List</h1>
        </div><!-- /header -->

        <div data-role="content">    
           
            <a href="#pageDetail">Detail Page</a>    
        </div><!-- /content -->

        <div data-role="footer">
            <h4>Easy Hotel</h4>
        </div><!-- /footer -->
    </div><!-- /page -->

    <div id="pageDetail" data-role="page">
        <div data-role="header">
            <h1>Hotel Detail</h1>
        </div><!-- /header -->

        <div data-role="content">    
            <p>Detail Page</p>        
        </div><!-- /content -->

        <div data-role="footer">
            <h4>Easy Hotel</h4>
        </div><!-- /footer -->
    </div><!-- /page -->

 

以上是內鏈,當鏈接被點擊時,Jquery moblie會在文檔內尋找帶有ID的page容器,然后使用效果顯示它;

外部鏈接

jqueyr mobile在加載外部鏈接(鏈接到另一個獨立應用頁面文件)會自動構建AJAX驅動的站點和應用;默認情況下,當你點擊了一個指向外部頁面(比如:http://www.cnblogs.com/yoainet/archive/2012/04/27/2473647.html)的鏈接,JQ moblie會分析鏈接地址,然后產生一個ajax請求(Hajax),顯示一個讀取中的提示框。如果AJAX請求成功,新頁面的內容會添加到DOM中,所有MOBILE組件都會自動初始化,所以新的頁面會通過顯示動畫顯示出來;如果AJAX請求失敗,JQ moblie會顯示一個小錯誤提示框(默認的主題為E),然后過一會就消失了,不會影響你繼續瀏覽;

后退鏈接

當你希望按鈕有后退功能時只需要給它設置data-rel="back"屬性,同時會忽略掉它的href鏈接,從而后退到瀏覽器上一個頁面;

  <a data-role="button" data-rel="back"  href="#pageDetail"  data-icon="back">Back</a>

 

頁面切換效果

要想定義頁面切換效果,只需要在鏈接上添加對應的data-transition就可以了,默認效果是fade;

image

 <a href="#pageList" data-transition="slide">List Page</a>    <br />    

這樣你就可以看到頁面在切換時效果變為拉式的了;

 

實例代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM