JQuery插件iScroll實(shí)現(xiàn)下拉刷新,滾動(dòng)翻頁(yè)特效
來(lái)源:易賢網(wǎng) 閱讀:8718 次 日期:2014-07-17 19:17:23
溫馨提示:易賢網(wǎng)小編為您整理了“JQuery插件iScroll實(shí)現(xiàn)下拉刷新,滾動(dòng)翻頁(yè)特效”,方便廣大網(wǎng)友查閱!

JQuery插件:iScroll

頁(yè)面布局:

<div id="wrapper">

  <div id="scroller">

   <div id="pullDown">

    <span class="pullDownIcon"></span><span class="pullDownLabel">下拉刷新...</span>

   </div>

   <ul id="thelist">

    <li>

     <img src="img/page1_img1.jpg" />

    </li>

    <li>

     <img src="img/page1_img2.jpg" />

    </li>

    <li>

     <img src="img/page1_img3.jpg" />

    </li>

    <li>

     <img src="img/page1_img1.jpg" />

    </li>

    <li>

     <img src="img/page1_img2.jpg" />

    </li>

    <li>

     <img src="img/page1_img3.jpg" />

    </li>

   </ul>

   <div id="pullUp">

    <span class="pullUpIcon"></span><span class="pullUpLabel">上拉加載更多...</span>

   </div>

  </div>翻頁(yè),是通過(guò)ajax請(qǐng)求,把頁(yè)碼傳入一般處理程序,在一般處理程序中獲得分頁(yè)后的數(shù)據(jù)返回json數(shù)組對(duì)象。

下拉刷新:

/**

  * 下拉刷新 (自定義實(shí)現(xiàn)此方法)

  * myScroll.refresh(); // 數(shù)據(jù)加載完成后,調(diào)用界面更新方法

  */

  function pullDownAction() {

   setTimeout(function () {

    var el, li, i;

    el = document.getElementById('thelist');

    //==========================================

    $.ajax({

     type: "GET",

     url: "LoadMore.ashx",

     data: { page: generatedCount },

     dataType: "json",

     success: function (data) {

      var json = data;

      $(json).each(function () {

       li = document.createElement('li');

       // li.innerText = 'Generated row ' + (++generatedCount);

       li.innerHTML = '<img src="' + this.src + '"/>';

       el.insertBefore(li, el.childNodes[0]);

      })

     }

    });

    myScroll.refresh(); //數(shù)據(jù)加載完成后,調(diào)用界面更新方法  Remember to refresh when contents are loaded (ie: on ajax completion)

   }, 1000);  // <-- Simulate network congestion, remove setTimeout from production!

  }上拉刷新

function pullUpAction() {

   setTimeout(function () { 

    var el, li, i;

    el = document.getElementById('thelist');

    //==========================================

    $.ajax({

     type: "GET",

     url: "LoadMore.ashx",

     data: { page: generatedCount },

     dataType: "json",

     success: function (data) {

      var json = data;

      $(json).each(function () {

       li = document.createElement('li');

       //  li.innerText = 'Generated row ' + (++generatedCount);

       li.innerHTML = '<img src="' + this.src + '"/>;    

       el.insertBefore(li, el.childNodes[0]);

      })

     }

    });

    //============================================

    myScroll.refresh(); // 數(shù)據(jù)加載完成后,調(diào)用界面更新方法 Remember to refresh when contents are loaded (ie: on ajax completion)

   }, 1000); // <-- Simulate network congestion, remove setTimeout from production!

  }初始化

/**

  * 初始化iScroll控件

  */

  function loaded() {

   pullDownEl = document.getElementById('pullDown');

   pullDownOffset = pullDownEl.offsetHeight;

   pullUpEl = document.getElementById('pullUp');

   pullUpOffset = pullUpEl.offsetHeight;

   myScroll = new iScroll('wrapper', {

    scrollbarClass: 'myScrollbar', /* 重要樣式 */

    useTransition: false,

    topOffset: pullDownOffset,

    onRefresh: function () {

     if (pullDownEl.className.match('loading')) {

      pullDownEl.className = '';

      pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';

     } else if (pullUpEl.className.match('loading')) {

      pullUpEl.className = '';

      pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加載更多...';

     }

    },

    onScrollMove: function () {

     if (this.y > 5 && !pullDownEl.className.match('flip')) {

      pullDownEl.className = 'flip';

      pullDownEl.querySelector('.pullDownLabel').innerHTML = '松手開(kāi)始更新...';

      this.minScrollY = 0;

     } else if (this.y < 5 && pullDownEl.className.match('flip')) {

      pullDownEl.className = '';

      pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';

      this.minScrollY = -pullDownOffset;

     } else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {

      pullUpEl.className = 'flip';

      pullUpEl.querySelector('.pullUpLabel').innerHTML = '松手開(kāi)始更新...';

      this.maxScrollY = this.maxScrollY;

     } else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {

      pullUpEl.className = '';

      pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加載更多...';

      this.maxScrollY = pullUpOffset;

     }

    },

    onScrollEnd: function () {

     if (pullDownEl.className.match('flip')) {

      pullDownEl.className = 'loading';

      pullDownEl.querySelector('.pullDownLabel').innerHTML = '加載中...';

      pullDownAction(); // Execute custom function (ajax call?)

     } else if (pullUpEl.className.match('flip')) {

      pullUpEl.className = 'loading';

      pullUpEl.querySelector('.pullUpLabel').innerHTML = '加載中...';

      pullUpAction(); // Execute custom function (ajax call?)

     }

    }

   });

   setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);

  }

  //初始化綁定iScroll控件

  document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);

  document.addEventListener('DOMContentLoaded', loaded, false);

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)