由於我也是接觸前端開發不久,所以呢,自己也會做點小功課,於是,我把前端能夠用到的知識稍稍做了下總結,總結的不全面,以后會慢慢完善的!
移動前端開發基礎 (總結----待完善)
1、移動前端開發:簡而言之就是對於移動設備所開發的應用,Android 、iPhone 是當今時代的主流系統,自從這兩個手機操作系統的發布以來,Webapp(以WEB形式運行的應用程序,運行在高端的移動終端設備)便開始流行起來。
1>我們都知道在高端智能手機系統中有兩種應用程序:一種是基於本地操作系統運行的APP 也就是nativeapp,另一種是基於高端機的瀏覽器運行的APP,也就是webapp。首先來看一下webapp和nativeapp的區別:
@、nativeapp(基於本地運行的app)
01、開發成本非常大(它一般使用的語言為java、c++、等比較大型的開發軟件)。
02、更新體驗較差,同時也是比較麻煩的(在發布新的版本的時候,都需要打包,這樣會大量浪費時間、精力的,而且它是需要手動更新,這也是用戶體驗較差的的原因之一)
03、它除了有不足之處外,它還是有一些優點的,比如: 它非常酷(因為nativeapp可以調用IOS中的UI控件的方法,從而可以實現一些webapp 無法實現的一些比較酷的交互效果)
04、nativeapp它是被apple所認可的,(nativeapp它是被apple認可的一款可信任獨立軟件,可以放在Apple Store出售,但是webapp就不可以)
@、webapp(基於高端機的瀏覽器運行的app)
01、開發成本低(使用web開發技術就可以輕松完成web app 的 開發)
02、升級比較簡單(升級不需要通知用戶,在服務器端口更新文件就可以了)
03、維護比較輕松(和一般的web一樣,維護比較簡單,它其實就是一個站點,)
說白了webapp就是針對Android和Iphone系統優化后的web站點,它所采用的技術一般都是html5、css3、javascript、服務端技術JAVA、PHP、ASP等。
2>在了解了nativeapp和webapp之后,那么HTML5和css3則是我們學習的關鍵所在,首先來了解一下html5吧!
@、一般對於前端開發員來說,還是建議用html5來實現webapp的編寫的,從而放棄那些版本較低的html4之類的,因為html5他可以實現一些html4無法實現的web應用程序,它可以減少開發者很多的工作量,減少對外部插件的需求(比如 Flash);在此之前必須要熟悉html5中的一些新標簽的應用;
新添加的標簽: 用於繪畫的 canvas 標簽
用於媒介回放的 video(視頻) 和 audio(音頻) 標簽
新的特殊內容元素,比如 article、footer、header、nav、section
新的表單控件,比如 calendar、date、time、email、search
比如:定義一些文章內容的區域。可以建議使用section標簽;
定義一些導航條和選項卡的時候可以使用nav標簽;
定義底部導航和底部板塊的時候可以使用footer標簽;
定義內容的頭部的時候,可以用header標簽;
@、在對於css3的使用中,有很多的屬性值得我們去學習,那么我就列舉幾個比較常見的屬性;
比如:在css3的編寫中,我們盡量要放棄使用float屬性,可以直接使用display:block(塊元素轉換為行內元素);
在css3中我們也應用了 animation(動畫)這個屬性;
animation-name ------動畫的名稱 ; 18:29 2014/10/30
animation-duration-----動畫完成一個周期所花費的時間(秒或毫秒。默認是 0);
text-shadow 這個屬性是添加陰影,它可以實現美化文字效果;
因為一些圓角按鈕它會具有高光和內發光的效果,這樣的效果在使用css3是無法寫出來的,但是我們可以利用-webkit-border-image來定義它的樣式。
有些頁面它會要求我們用自適應的布局去排布,因此一般建議不要把它的寬度定義死,可以采用百分比的排布方式排列,或者是用em來代替px 的使用,這樣就可以自適應一些ipad、iPod、iphone、Android、web safarik、chorme、這樣的話也不用考慮一些屏幕的分辨率。
3>然而作為一名前端開發者,又想要在移動端上開發出自己的應用,那么對於WebKit內核瀏覽器也是必須要有一定的了解的,所以說它自己本身也是有自己的一些技巧的;我也總結了以下幾點,就是平時常見的:
a.viewport
定義:相對於瀏覽器而言, 從字面定義它就是可視窗口、可視區域的意思,然而對於一般的瀏覽器我們應該都知道它是什么?也就是除去所有的工具欄、狀態欄、以及滾動條以外的我們可以看得見的網頁的區域;
相對於移動設備而言,因為移動設備的屏幕寬度它不同於傳統的web,因此我們必須要改變viewport來實現,那么我們操作viewport就有以下幾個屬性:
@、width ------viewport的寬度(它的屏幕范圍為220px-10000px之間,一般來說默認的寬度為980px)。
@、heigth ------viewport的高度(它的屏幕范圍為223px-10000之間)。
@、minium-scale -----這是指用戶所允許屏幕縮放到的最小比例。
@、maxium-scale -----這是指用戶所允許屏幕縮放到的最大比例。
@、user-scalable ------這是指用戶是否可以手動縮放屏幕(它一般會有兩個值:yes / on)。
b.事件(event)在學習和了解移動端的時候,事件的學習是必不可少的,它在APP的實現中會起着很大的作用;它包含了很多的事件,那么下面我就列舉一些我們常見的、用的比較多的事件,來進行了解和學習。
a》手勢事件(從字面上理解,它就是指手指觸摸到屏幕所發生的事件)它包括以下幾個事件:
@、touchstart------當手指接觸到屏幕時出發的事件
@、touchmove-----當手指接觸到屏幕的時候開始移動時出發的事件
@、touchend-------當手指離開屏幕時觸發的事件
b》觸摸事件(也就是從字面意義上理解,它就是和手勢事件想似,也是手指觸摸到屏幕所觸發的事件)
@、gestureshart----當兩個手指接觸到屏幕時觸發的事件
@、gesturechange----當兩個手指接觸到屏幕后開始移動時觸發的事件
@、gestureend-----當兩個手指離開屏幕時觸發的事件
c》屏幕旋轉事件(從字面的意思上理解,就是指當屏幕發生旋轉的時候它所觸發的事件);要知道在發生旋轉時,它的狀態有沒有發生變化,即左旋、右旋、或者是沒旋,首先呢,必須先要進行判斷:在判斷的過程中我們應用到了switch這個循環語句來進行;最后記得要添加 監聽事件(addEventListener)。
d》touch事件,在了解了上述各種事件時,那么touch事件則相對而言就比較容易理解了,它一般是針對於視口的寬度和高度而言的,那么也就包含了以下幾點屬性:
@、clientX 和 clientY 相對於當前窗口的X/Y坐標
@、screenX和screenY 相對於當前屏幕的X/Y坐標
@、pageX和pageY 相對於父元素的X/Y坐標
那么對於學習和理解webapp還有好多的技巧和屬性值得我們去學習,而我總結的也只是它其中的一小部分而已。
總結的可能不太詳細,但是我會繼續加油的哦!嘻嘻!