基於iScroll 的開發(不斷補充)


iScroll是一個JS插件,支持鼠標和觸摸的滑動、滾動操作,可用於實現列表(橫、縱、矩陣)、圖片幻燈式播放等效果。

本文結合實例,解析iScroll的使用方法以及注意事項。

說明:本文使用的版本是iScroll4 http://cubiq.org/iscroll-4  (更新的版本見 https://github.com/cubiq/iscroll)

 

基本概念

使用iscroll一般需要構造如下結構:

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

最外層是wrapper,用於實例化iScroll的div。

wrapper里面是一個scroller,scroller的寬高與wrapper的寬高共同決定着列表有多少行多少列。例如:

.wrapper {
    width:100px;
    height:100px;
}

.scroller {
    width:300px;
    height:200px;
}

則列表會有2行,3列,橫向可以滾3屏,縱向可以滾2屏。

image

 

從上圖中可以看出,wrapper之於scroller,就像viewport之於document.

wrapper的寬高好說,你想讓它多大就設置多大。

對於scroller,當元素個數不確定的時候,寬高是要計算出來。

 

動態計算scroller寬高

為演示如何動態計算寬高,我寫了一個JQueryUI Widget,並且配了一個demo。(代碼下載:http://files.cnblogs.com/dc10101/diorama.zip

這個widget做的事情就是繪制一個橫向滑動或縱向滑動的iscroll,插件使用者只需指定wrapper(也就是可見區域)的寬高,scroller的寬高會自動計算出來。

由於iscroll本身是用float:left來排列元素,因此在繪制橫向滑動的iscroll時要調換一下各元素的位置,這些算法在插件的代碼中都有體現。

以下截圖展示了橫向縱向兩種iscroll的樣子,以及向尾部添加元素后的狀態。

 

image       image

 


免責聲明!

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



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