成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sencha Touch開發(fā)實(shí)例:有動(dòng)畫效果iPad的網(wǎng)站首頁

移動(dòng)開發(fā)
在本教程中,將指導(dǎo)大家使用Sench Touch,設(shè)計(jì)一個(gè)適合在iPad上觀看的網(wǎng)站首頁,并且有一定的動(dòng)畫效果,我們先來看下在模擬器上看到的最終效果圖。

在51CTO的專題“Sencha Touch入門教程”中我們已對如何使用Sencha touch進(jìn)行開發(fā)有了初步的認(rèn)識。在本系列教程中,將學(xué)習(xí)如何使用Sencha Touch,開發(fā)一個(gè)適合在iPad上運(yùn)行的網(wǎng)頁應(yīng)用,并詳細(xì)講解其中的技巧。本文的閱讀對象為對Sencha Touch有一定基礎(chǔ)的讀者,如果讀者不熟悉相關(guān)內(nèi)容,請先查看51CTO的專題。

構(gòu)圖設(shè)計(jì)

在本教程中,將指導(dǎo)大家使用Sench Touch,設(shè)計(jì)一個(gè)適合在iPad上觀看的網(wǎng)站首頁,并且有一定的動(dòng)畫效果,我們先來看下在模擬器上看到的最終效果圖,如下圖所示:

Sencha Touch 實(shí)戰(zhàn)ipad開發(fā)

在這個(gè)例子中,讀者將學(xué)習(xí)到如何用Sencha Touch設(shè)計(jì)基本的ipad頁面以及其中用到的技巧以及動(dòng)畫效果。下面我們開始學(xué)習(xí)的旅程。

設(shè)計(jì)頁面構(gòu)圖

首先,我們來看下我們頁面的構(gòu)圖,為了方便讀者看到清晰看到頁面的結(jié)構(gòu),我們用不同的顏色作了標(biāo)識,如下圖:

Sencha Touch 實(shí)戰(zhàn)ipad開發(fā)

框架頁面設(shè)計(jì)

下面開始對index.html首頁進(jìn)行編碼,代碼如下:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.      <meta charset="utf-8">  
  5.      <title>Newsletter</title>  
  6.    
  7.      <!-- Sencha Touch CSS --> 
  8.      <link rel="stylesheet" href="../sencha-touch/resources/css/sencha-touch.css" type="text/css">  
  9.    
  10.      <!-- Sencha Touch JS --> 
  11.      <script type="text/javascript" src="../sencha-touch/sencha-touch-debug.js"></script>  
  12.    
  13.      <!-- Application JS --> 
  14.      <script type="text/javascript" src="index-a.js"></script>  
  15.    
  16. </head>  
  17. <body></body>  

這里,我們要把引用了Sencha touch中的CSS文件和核心文件,然后這里***步,我們把要編寫的js文件命名為index-a.js。

接者我們開始一步步編寫index-a.js,代碼如下:

  1. Ext.setup({  
  2.    
  3.     tabletStartupScreen: 'tablet_startup.png',  
  4.     icon: 'icon.png',  
  5.     glossOnIcon: true,  
  6.    
  7. }); 

首先在Ext.setup中,設(shè)置了 tabletStartupScreen屬性,這個(gè)屬性是適合在象ipad這樣的平板電腦中設(shè)置的,指定了啟動(dòng)應(yīng)用的界面圖片,目前只能以tablet_startup.png命名,而且大小規(guī)定為768*1024 pixels。

同時(shí),在icon屬性中,指定了icon.png作為應(yīng)用的圖標(biāo),目前也只能使用icon.png的文件名命名。而glossOnIcon屬性則指定了圖標(biāo)使用的是帶光澤的效果(設(shè)置為true)。接下來,我們編寫onfunction方法,代碼如下:

  1. Ext.setup({  
  2.    
  3.     tabletStartupScreen: 'tablet_startup.png',  
  4.     icon: 'icon.png',  
  5.     glossOnIcon: true,  
  6.    
  7.     onReady: function() {  
  8.    
  9.         var header = new Ext.Panel({  
  10.             height: 35,  
  11.             style:"background-color:lightblue;",  
  12.             html: "The info button and updated on date will go here." 
  13.         });   
  14.    
  15.         var masthead = new Ext.Panel({  
  16.             height: 70,  
  17.             style:"background-color:blue;",  
  18.             html: "The masthead will go here." 
  19.         });  
  20.    
  21.         var sidebar = new Ext.Panel({  
  22.             flex: 1,  
  23.             style:"background-color:red;",  
  24.             html: "The sidebar information will go here.",  
  25.         });   
  26.    
  27.         var stories = new Ext.Panel({  
  28.             flex: 2,  
  29.             style:"background-color:green;",  
  30.             html: "The main story information will go here." 
  31.         });  
  32.    
  33.         var content = new Ext.Panel({  
  34.             height: 899,  
  35.             layout: {  
  36.                 type:'hbox',  
  37.                 align:'stretch' 
  38.             },  
  39.             items: [  
  40.                 sidebar,  
  41.                 {  
  42.                     xtype: 'component',  
  43.                     height: 10,  
  44.                     width: 10  
  45.                 },  
  46.                 stories  
  47.             ]  
  48.         });  
  49.    
  50.         rootPanel = new Ext.Panel({  
  51.             fullscreen:true,  
  52.             style:"background-color:white",  
  53.             layout: {  
  54.                 type:'vbox',  
  55.                 align:'stretch' 
  56.             },  
  57.             items:[header, masthead, content]  
  58.         });   
  59.    
  60.     }  

我們逐一來分析以上的代碼。首先,onready方法,發(fā)生在當(dāng)頁面加載完畢時(shí)啟用。接下來,我們定義了多個(gè)pannel面板控件,面板的作用是包含其他的控件,并形成相對獨(dú)立的區(qū)域,在教程中,我們只是將pannel中填上顏色及文字以示區(qū)別。

在head面板中,注意到設(shè)定了height高度,由于這里是針對ipad,所以這里設(shè)置了特定的高度,如果要針對其他移動(dòng)設(shè)備的話,這里也可以根據(jù)實(shí)際情況設(shè)定實(shí)際的高度。而 style屬性中,設(shè)定使用的樣式屬性,可以設(shè)置多個(gè)值,這里只設(shè)定了使用背靜顏色為綠色(background-color:blue)。而html則設(shè)置了該pannel中的文本文字。

接下來的幾個(gè)pannel面板中,其設(shè)置相關(guān)的值跟head面板差不多,這里不再詳細(xì)描述。要注意的一點(diǎn)是,其中在sidebar面板中,設(shè)置了flex的屬性值為1,在stories面板中,設(shè)置了其屬性值為2,可以看到sidebar的寬度實(shí)際上為stories面板寬度的1/2。假如要設(shè)置為stories面板寬度的1/3,則只需要把stories面板中的flex屬性值設(shè)置為3即可。

在content面板中,演示了如何在一個(gè)面板中包含多個(gè)其他的面板,這里設(shè)置了高度height為899pixels,注意如果將pannel中的所有面板的高度相加,會(huì)發(fā)現(xiàn)高度為1004,而不是ipad的面板高度1024,因?yàn)檫€有的20pixels高度為ipad本身的狀態(tài)工具欄所占有的。而layout屬性組中,設(shè)置了type屬性為hbox,代表面板內(nèi)的控件布局方式為從左到右的水平布局方式,而stretch表示控件的對齊方式為全部填充滿父控件的大小。在items屬性列表中,分別列出了slidebar,stories兩個(gè)面板,而其中之間用大括號括起來的部分,其實(shí)這里是又增加了一個(gè)分割的控件,其寬度和高度均為10,這里使用了xtype:component 的方法,演示了另外一種創(chuàng)建控件的方法,當(dāng)然這里你也可以依然使用pannel控件。

***部分,再設(shè)置了一個(gè)大的pannel控件面板rootPanel,其中設(shè)置了全屏屬性(fullscreen:true),背景顏色設(shè)置為白色,而布局方式這里設(shè)置為vbox,即從上到下,垂直擺放三個(gè)面板header, masthead, content。

運(yùn)行后,效果如下圖:

Sencha Touch 實(shí)戰(zhàn)ipad開發(fā)

設(shè)計(jì)頭部pannel

接下來,我們嘗試對頭部的pannel進(jìn)行一些修改,在其中增加一張圖片,并且實(shí)現(xiàn)點(diǎn)頭部的圖標(biāo)時(shí),會(huì)彈出窗口。如下圖所示:

Sencha Touch 實(shí)戰(zhàn)ipad開發(fā)

首先看如何在頭部的嵌入圖片,代碼如下:

  1. var masthead = new Ext.Panel({  
  2.     html: '<center><img src="masthead.png"/></center>',  
  3.     height: 70,  
  4. }); 

接下來,我們再加入一個(gè)小的pannel,內(nèi)容為更新的時(shí)間,代碼如下:

  1. var date = new Ext.Panel({  
  2.     html: '<div class="date">Updated on: 05.06.11</div>',  
  3. }); 

這里我們用了date的CSS樣式,所以還要修改下index.html頁,以引入一個(gè)CSS樣式文件:

  1. <link rel="stylesheet" href="newsletter.css" type="text/css"

再加入一個(gè)info面板,其中有一個(gè)圖標(biāo),代碼如下:

  1.  var info = new Ext.Panel({  
  2.     html: '<img src="info.png"/>',  
  3.     height: 35,  
  4.     width: 35,  
  5. }); 

因?yàn)镾encha Touch默認(rèn)的info圖標(biāo)比較大,所以這里用了自定義的圖標(biāo),并且大小為21*21 pixels,能適合點(diǎn)擊。

***,我們將其組裝起來,如下代碼:

  1. var header = new Ext.Panel({  
  2.     height: 35,  
  3.     padding: '10 20 0 20',  
  4.     layout: {  
  5.         type:'hbox',  
  6.         align:'start' 
  7.     },  
  8.     items: [  
  9.         info,  
  10.         {  
  11.             xtype: 'component',  
  12.             flex: 1  
  13.         },  
  14.         date  
  15.     ],  
  16.    
  17. }); 

注意,這里使用了padding屬性,分別為10,20,0,20,其中,即指定了其中的info控件距離屏幕最左邊的距離為10象素,跟頭部的圖片為20象素,而圖片與表示日期的控件的象素為0(即緊挨著),***的20表示日期控件距離屏幕的右邊距離為20象素。在info控件及date控件之間,設(shè)置了一個(gè)component控件,用來放置圖片。

接下來,我們期望實(shí)現(xiàn)的效果是,當(dāng)用戶點(diǎn)info控件中的小button時(shí),會(huì)彈出一個(gè)窗口,我們先來設(shè)計(jì)這個(gè)窗口,如下:

  1. var popup = new Ext.Panel({  
  2.     floating: true,  
  3.     modal: true,  
  4.     centered: true,  
  5.     padding: 5,  
  6.     width: 500,  
  7.     height: 425,  
  8.     dockedItems: [  
  9.         {  
  10.             xtype: 'toolbar',  
  11.             dock: 'top',  
  12.             title: 'APP Info',  
  13.         }  
  14.     ],  
  15.         items: [  
  16.             {  
  17.                 xtype: 'panel',  
  18.                 centered: true,  
  19.                 padding: 20,  
  20.                 html: '<div class="infobox">You can fill this popup with whatever content you may like.</div>' 
  21.             }  
  22.     ]  

在上面的代碼中,通過modal屬性設(shè)置彈出的這個(gè)窗口是模態(tài)的,即彈出口,除彈出窗外的其他部分是變灰色不可選擇的,當(dāng)點(diǎn)窗口外的任意部分時(shí),彈出窗口會(huì)被關(guān)閉。Padding為5,設(shè)定了該彈出窗口邊框的寬度。

而在dockeditems屬性列表中,設(shè)置了彈出窗口的標(biāo)題欄位屬性,這里dock為top,即表明標(biāo)題欄位于彈出窗口的最上方。而items屬性列表則設(shè)置了彈出窗口文字部分的屬性。

在完成彈出窗口后,需要在info按鈕的事件中編寫相關(guān)的代碼打開它,代碼如下:

  1. info.on('afterrender'function(){  
  2.     this.body.on('click'function(){  
  3.         popup.show('pop');  
  4.     });  
  5. }); 

在上面的代碼中,在頁面完全加載完畢后,為info按鈕圖標(biāo)增加了相關(guān)的點(diǎn)擊的處理事件函數(shù),其中的內(nèi)容為popup.show('pop');

其中指定了上文的popup彈出窗口的顯示方法為pop,當(dāng)然如果不想用彈出窗口的效果的話,這里可以指定為popup.show()也可以,又或者可以使用其他效果,比如:

  1. popup.show({type: 'slide', direction: 'down'}); 

小結(jié)

在本教程的***部分,講解了如何使用sencha touch去搭建基本的頁面應(yīng)用以及一些基本的技巧,在下一部分中,將進(jìn)一步講解更復(fù)雜點(diǎn)的動(dòng)畫技巧。

責(zé)任編輯:佚名 來源: IT168.com
相關(guān)推薦

2011-09-02 15:18:49

Sencha Touc

2011-07-26 09:58:24

2011-07-26 10:21:25

Sencha Touc

2011-07-26 10:44:15

Sencha Touc

2011-07-25 16:21:22

Sencha touc

2011-07-26 09:41:50

Sencha Touc特性HTML 5

2011-07-26 09:46:53

Sencha Touc

2011-09-05 11:23:26

EclipseSencha Touc框架

2010-11-22 10:31:17

Sencha touc

2011-07-25 15:55:21

Sencha ToucHtml 5

2011-09-02 16:42:51

Sencha ToucWeb應(yīng)用

2011-09-05 11:27:17

Sencha Touc框架HTML5

2011-07-25 16:41:16

Sencha Touc

2011-07-22 18:20:04

IOS View 動(dòng)畫

2011-09-05 10:20:21

Sencha ToucAPP

2012-01-10 14:10:26

Sencha Touc

2012-02-28 14:48:41

2011-09-02 16:21:08

Sencha Touc自動(dòng)生成工具

2011-09-05 10:39:03

Sencha Touc離線存儲(chǔ)數(shù)據(jù)庫

2011-11-28 13:42:55

Sencha Touc組件選擇器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线免费看黄 | 一区二区三区欧美在线 | 伊人久操 | 古典武侠第一页久久777 | 亚洲天堂中文字幕 | 国产视频一区二区三区四区五区 | 久久久青草| 久久av一区二区三区 | 日本免费小视频 | a级在线免费| 一区在线视频 | 久久免费视频在线 | 81精品国产乱码久久久久久 | 99精品视频在线观看 | 免费在线国产视频 | 日本亚洲精品成人欧美一区 | 亚洲综合在线视频 | 久久99精品久久久久久 | 中文字幕一区二区三区日韩精品 | 国产免费一区二区 | 久久久精品网站 | 欧美一级免费看 | 精品久久久久久久 | 免费一区二区三区 | 精品一区二区久久久久久久网站 | 亚洲精品大片 | 欧美中文字幕 | 国产精品久久久久9999鸭 | 9999久久 | 日日操夜夜操天天操 | 亚洲视频在线观看一区二区三区 | www.日韩高清 | 成人妇女免费播放久久久 | 国产精品久久国产精品99 gif | 香蕉视频久久久 | 超碰97av | 欧美一区二区成人 | 亚洲一区二区精品视频 | 91精品国产综合久久久久久 | 亚洲综合色 | 日本久久久影视 |