你可能會疑惑為什么滾動條這么常見的功能會在這里單獨列出,但如果你有過PhoneGap開發經驗的話,你就會發現要在Android 2.3 里面實現滾動條那真不是一件容易的事。
8.1 概述
目前主流的PhoneGap框架或者庫都花了很大的力氣來實現滾動條,比如jQueryMobile, Sencha Touch,KendoUI,Intel App Framework (以前叫jqMobi),甚至還有一個專門只做滾動條而變得很出名的iScroll。
出現滾動條百家爭鳴的原因是,低版本的Android和iOS不支持CSS樣式overflow: scroll。于是才會寫JS來處理觸摸三事件。
我們的框架也處理了滾動條,因此可以運行于低版本的Android和iOS設備。跟其他主流的PhoneGap框架不一樣,我們的滾動條只用了很少的代碼就實現了,這是因為得益于我們有固定尺寸的div#body,而其他框架都不會去要求程序員這樣設計HTML。當你越多的使用我們的框架,做的程序越復雜,你就會發現固定尺寸的div#body會給你帶來意想不到的驚喜,這些都是其他框架無法比擬的。
在我們的框架下使用滾動條也非常簡單,通常只需要一行代碼,如:new nova.Scroller("#content").init(); 如果你需要對這個scroller進行配置,那么在調用scroller實例的init方法前,可以設置scroller的相關屬性。目前支持的特性包括:
l 橫向滾動
l 縱向滾動
l 嵌套的滾動
8.2 已知問題
盡管我們通過觸摸三事件實現了滾動條,但是這個滾動條對于表單的兼容性不好。滾動條和表單元素的兼容性也是所有其他滾動條的痛處,到現在為止,我還沒有發現哪一家的滾動條能夠完美兼容表單。
我們框架在滾動功能和表單元素的功能取舍上,犧牲了部分滾動功能,而讓表單元素的功能更加強壯。這句話說得很抽象,實現的效果就是,所有表單元素會正常工作,但是滾動觸摸的起點不能在表單元素上,也就是說,你不能把手指按住一個textbox然后再下拉滾動頁面。
文章列表