欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iScroll.js 使用方法參考

 更新時間:2016年05月16日 22:34:52   投稿:mdxy-dxy  
以下這篇文章是iScroll.js官網(wǎng)的中文翻譯,盡管自己英文不好,但覺得原作者們翻譯的這個資料還是可以的,基本用法介紹清楚了。如果你英文比較好的話,可以看看官網(wǎng)的資料

概要

iScroll 4 這個版本完全重寫了iScroll這個框架的原始代碼。這個項目的產(chǎn)生完全是因為移動版webkit瀏覽器(諸如iPhone,iPad,Android 這些系統(tǒng)上廣泛使用)
提供了一種本地化的方式來對一個限定了高度和寬度的元素的內(nèi)容進行滑動。很不幸的是,這種情況下所有的web應(yīng)用的頁面就不能夠包含具有position:absolute的頭、頁尾或者是一個內(nèi)容可滾動的
中間區(qū)域。

然而,Android系統(tǒng)最新修訂版已經(jīng)可以支持這種功能了(盡管支持的力度還不是特別好),Apple公司似乎不太情愿將one-finger滑動事件運用到div元素上。
除了以前版本的iScroll的特性以外,iScroll 4還包括如下的特性:

     (1)縮放(Pinch/Zoom)
    (2)拉動刷新(Pull up/down to refresh)
    (3)速度和性能提升
    (4)精確捕捉元素
    (5)自定義滾動條
      友情提示:iScroll 4并不是iScroll 3的簡易替代版本,API文檔已經(jīng)不一樣了。同時考慮到此版本正處于測試期,一些API可能會有細微的變化。


使用指南

在此文檔中你會發(fā)現(xiàn)很多例子來教會你如何快速上手iScroll腳本庫。參看文中的demo小例子并仔細閱讀此文檔,可能有點小無聊,但是這篇文章中卻是iScroll這個腳本庫的精髓之所在哦。
iScroll需要對所要進行滾動的元素進行初始化,并且不限定一個頁面中使用iScroll的元素的個數(shù)(這里不考慮您的硬件配置)。滾動元素中內(nèi)容的類型和長度在一定程度上將會影響iScroll腳本庫里
可以同時使用的元素的個數(shù)。
使用iScroll這個腳本庫時,DOM樹的結(jié)構(gòu)要足夠簡單,移除不必要的標簽,盡量避免過多的標簽嵌套使用。
最優(yōu)的使用iScroll的結(jié)構(gòu)如下所示:

<div id="wrapper">
    <ul>
        <li></li>
        .....
    </ul>
</div>

在這個小例子中,ul標簽將會被滾動。iScroll一定要與滾動內(nèi)容外面的wrapper進行聯(lián)系才會產(chǎn)生效果。
【注意事項】:
只有wrapper里的第一個子元素才可以滾動,如果你想要更多的元素可以滾動,那么你可以試試下面的這種寫法:

<div id="wrapper">
    <div id="scroller">
        <ul>
          <li></li>
           ...
        </ul>
        <ul>
           <li></li>
           ...
        </ul>
    </div>
</div>

在這個例子中,scroller這個元素可以滾動,即便它包含兩個ul元素

iScroll必須在調(diào)用之前實例化,你可以在下面幾種情況下對iScroll進行實例化:

  (1)使用onDOMContentLoaded事件實現(xiàn)滾動

適用于滾動內(nèi)容只包含文字、圖片,并且所有的圖片都有固定的尺寸

<script src="iscroll.js"></script>
    <script>
        var myscroll;
        function loaded(){
              myscroll=new iScroll("wrapper");
         }
        window.addEventListener("DOMContentLoaded",loaded,false);
     </script>

注意:myscroll這個變量是全局的,因此你可以在任何地方調(diào)用它

 ?。?)使用onLoad事件實現(xiàn)滾動

因為DOMContentLoaded事件是載入DOM結(jié)構(gòu)后就會被調(diào)用,所以在圖片等元素未載入前可能無法確定滾動區(qū)域的長寬,此時可以使用onLoad事件來實現(xiàn)。

<script src="iscroll.js"><script>
    <script>
          var myscroll;
          function loaded(){
          setTimeout(function(){
              myscroll=new iScroll("wrapper");
           },100 );
        }
        window.addEventListener("load",loaded,false);
     </script>

這種情況下iScroll會在頁面資源(包括圖片)加載完畢100ms之后得到初始化,這應(yīng)該是一種比較安全的調(diào)用iScroll的方式。

 ?。?)inline初始化

這種情況會在頁面加載到j(luò)s的時候就進行調(diào)用,此方法不推薦使用,但是很多javascript的大牛都在用這種方式,我又有什么理由不贊成呢?

<script src="iscroll.js"></script>
          <div id="wrapper">
              <ul>
                <li></li>
                 ...
             </ul>
         </div>
    <script>
          var myscroll=new iScroll("wrapper");
    </script>

不過建議你使用一些框架的ready方法來安全調(diào)用iScroll(比如jquery里的ready())。

iScroll里傳遞的參數(shù)

  iScroll里的第二個參數(shù)允許你自定義一些內(nèi)容,比如下面的這段代碼:

 <script>
var myscroll=new iScroll("wrapper",{hScrollbar:false, vScrollbar:false});
</script>

第二個參數(shù)通常都是一個對象,像上面的這個例子里就設(shè)定了不顯示滾動條。常用的參數(shù)如下:

               hScroll                 false 禁止橫向滾動 true橫向滾動 默認為true
               vScroll                 false 精致垂直滾動 true垂直滾動 默認為true
               hScrollbar            false隱藏水平方向上的滾動條
               vScrollbar            false 隱藏垂直方向上的滾動條
               fixedScrollbar      在iOS系統(tǒng)上,當(dāng)元素拖動超出了scroller的邊界時,滾動條會收縮,設(shè)置為true可以禁止?jié)L動條超出
                                        scroller的可見區(qū)域。默認在Android上為true, iOS上為false
               fadeScrollbar     false 指定在無漸隱效果時隱藏滾動條
               hideScrollbar     在沒有用戶交互時隱藏滾動條 默認為true
               bounce             啟用或禁用邊界的反彈,默認為true
               momentum       啟用或禁用慣性,默認為true,此參數(shù)在你想要保存資源的時候非常有用
               lockDirection       false取消拖動方向的鎖定, true拖動只能在一個方向上(up/down 或者left/right)

各種效果的實現(xiàn)

滾動刷新  'Pull to refresh' demo

        自從Twitter和一些Apple的本地化應(yīng)用出現(xiàn)了這個效果之后,這個效果就變得非常流行。你可以看看這兒先一睹為快。
       最新版中,作者把把"pull to refresh"這個部分單分出來作為iScroll的一個額外插件。你可以點擊這兒看看pull to refresh是如何工作滴。你只需要做的就是自定義pullDownAction()這個方法。你可能需要一個ajax來加載新的內(nèi)容,不過一旦DOM樹發(fā)生了變化要記得調(diào)用refresh這個方法來。需要記住的是在例子中我們加了1秒的延遲來模擬網(wǎng)絡(luò)的延遲效果。當(dāng)然,如果你不想使用這個延遲,那就把setTimeout方法去掉就行了。

縮放(pinch / zoom)  'Pull to refresh' demo

        我們不得不面對一個事實,那就是光有滾動其實沒什么新意的。這就是為什么在iScroll 4這個版本里我們允許你可以放
        大和縮小。想要這個功能,只需要設(shè)置放大的參數(shù)zoom 為true即可實現(xiàn)利用手勢來放大和縮小。你可以看看這兒。
        雙擊放大和縮小的功能在iScroll 4里也是得到支持的。要使用縮放功能,你至少需要如下配置:              

 var myScroll =new iScroll("wrapper",{zoom:true});
       如果你想對縮放功能進行深度的自定義的話可以使用下面的一些選項:
               zoomMax   指定允許放大的最大倍數(shù),默認為4
      【注意事項】:如果想要圖片縮放的效果很好的話要把他們放到硬件的合成層中。通俗點說,就是在所有需要縮放的img元素上使用-webkit-transform:translate3d(0,0,0)來實現(xiàn),而且尤為重要的是,硬件的加速會占用大量資源,要謹慎使用,否則你的應(yīng)用可能就此崩潰。

捕捉元素(snap and snap to element)  'Carousel' demo

  SNAP功能是判斷元素是否滑動到指定位置。通過這個效果可以制作花哨的跑馬燈效果。

  插件會自動分析滾動區(qū)域內(nèi)相同標簽或相同大小的元素做為捕捉對象,也可以通過參數(shù)指定捕捉的對象    

var myscroll=new iScroll("wrapper",{
            snap:true,
            momentum:false,
            hScrollbar:false,
            vScrollbar: false
         });

可以通過設(shè)置snap參數(shù)為指定標簽來設(shè)定捕捉對象。比如捕捉li標簽。

var myscroll=new iScroll("wrapper",{
           snap:"li",
           momentum:false,
           hScrollbar:false,
           vScrollbar:false
        });

在這個例子中scroller可以捕捉到滾動區(qū)域中最左上角的li元素

自定義滾動條(custom scrollbars)
在iScroll 4這個版本中,可以利用一系列的css來自定義滾動條的呈現(xiàn)??梢越o滾動條添加一個class參數(shù),如下:

var myscroll=new iScroll("wrapper",{
  scrollbarClass: "myScrollbar"
});

需要提醒的是,滾動條是由兩個元素組合而成的:容器和顯示器。容器同wrapper的高度相同,而顯示器則代表的是滾動條本身。
滾動條的HTML結(jié)構(gòu)如下:

<div class="myScrollbarV"><div></div></div>
.myscrollbarV{
position:absolute;z-index:100;width:8px;bottom:7px;top:2px;right:1px;
 }
.myScrollbarV > div {
position:absolute;
z-index:100;
width:100%;
 /* The following is probably what you want to customize */
background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
border:1px solid #800;
-webkit-background-clip:padding-box;
-webkit-box-sizing:border-box;
-webkit-border-radius:4px;
-webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
 }

通用方法:

(1)refresh                          在DOM樹發(fā)生變化時,應(yīng)該調(diào)用此方法
eg: setTimeout(function () { myScroll.refresh(); }, 0);

(2)iScroll還提供了scrollTo, scrollToElement和scrollToPage三個方法讓你能夠通過javascript來控制滾動效果。
    scrollTo(x, y, time, relative):在指定的time時間內(nèi)讓內(nèi)容滾動條x/y的位置。如myScroll.scrollTo(0, -100, 200) 在200毫秒內(nèi)Y軸向下滾動100像素。 myScroll.scrollTo(0, 10, 200, true)可以實現(xiàn)相對當(dāng)前位置在200毫秒內(nèi)Y軸向上滾動10像素的效果。
    scrollToElement(element, time):在指定的時間內(nèi)滾動到指定的元素。如myScroll.scrollToElement('li:nth-child(10)', 100) 在100毫秒內(nèi)滾動到第10個li元素的位置。第1個參數(shù)可以用CSS3中的選擇器來篩選元素。
    snapToPage(pageX, pageY, time):在200毫秒內(nèi)從第1頁滾動到第2頁(0代表第1頁,1代表第2頁)。這個使用SNAP功能的時候可以調(diào)用這個函數(shù)。

(3)detroy()                       完全消除myscroll及其占用的內(nèi)存空間
 eg: myscroll.destroy();
 myScroll = null;

iScroll的發(fā)展方向

表單域的支持
縮放的優(yōu)化
更好的桌面瀏覽器的兼容性
onScrol事件的優(yōu)化
加個哈希值的變化
DOM改變后自動刷新

相關(guān)文章

  • JavaScript內(nèi)置對象Math與String詳細介紹

    JavaScript內(nèi)置對象Math與String詳細介紹

    這篇文章主要介紹了JavaScript內(nèi)置對象Math與String的介紹與使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 數(shù)組Array的排序sort方法

    數(shù)組Array的排序sort方法

    下面小編就為大家?guī)硪黄獢?shù)組Array的排序sort方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    數(shù)組解構(gòu)是一種在 JavaScript 中從數(shù)組中提取值并將它們分配給變量的方式,在數(shù)組解構(gòu)中分為完全解構(gòu),不完全解構(gòu),解構(gòu)失敗以及解構(gòu)默認值,這篇文章主要介紹了js中數(shù)組解構(gòu)與對象解構(gòu),需要的朋友可以參考下
    2023-09-09
  • 微信小程序?qū)崿F(xiàn)輪播圖效果

    微信小程序?qū)崿F(xiàn)輪播圖效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)輪播圖效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 簡單實現(xiàn)js放大鏡效果

    簡單實現(xiàn)js放大鏡效果

    這篇文章主要教大家如何簡單實現(xiàn)js放大鏡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 全面了解addEventListener和on的區(qū)別

    全面了解addEventListener和on的區(qū)別

    下面小編就為大家?guī)硪黄媪私鈇ddEventListener和on的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • layui 解決富文本框form表單提交為空的問題

    layui 解決富文本框form表單提交為空的問題

    今天小編就為大家分享一篇layui 解決富文本框form表單提交為空的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • JavaScript中的類型檢查

    JavaScript中的類型檢查

    本文給大家介紹了JavaScript中的類型檢查的一些知識點,整理的非常詳細,推薦給大家,希望對大家學(xué)習(xí)JavaScript能夠所幫助
    2020-02-02
  • js實現(xiàn)百度登錄框鼠標拖拽效果

    js實現(xiàn)百度登錄框鼠標拖拽效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)百度登錄框鼠標拖拽效果的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JS將秒換成時分秒實現(xiàn)代碼

    JS將秒換成時分秒實現(xiàn)代碼

    將秒換成時分秒的方法有很多,在本文將為大家介紹下,使用js的具體的實現(xiàn)思路,有需要的朋友可以參考下,希望對大家有所幫助
    2013-09-09

最新評論