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

iscroll.js的上拉下拉刷新時無法回彈的解決方法

 更新時間:2016年02月18日 08:46:20   作者:那時候的我  
本文給大家分享的是在IOS瀏覽器中使用iscroll.js的上拉下拉刷新時當手指劃出屏幕后無法回彈的解決方法,希望對大家能夠有所幫助。

使用過iscroll.js的上拉下拉刷新效果的朋友應該都碰到過這個問題:在iOS的瀏覽器中,上拉或下拉刷新時,當手指劃出屏幕后,頁面無法彈回。很多人因為解決不了這個問題,干脆就那樣不解決了,還有的直接就不用HTML了,使用原生代替HTML頁面。

相信很多朋友也有自己的解決辦法,只是沒寫出來,所以網上都搜不到解決方案。在很多QQ群里面也有很多人在問該怎么解決這個問題,所以我寫這篇文章記錄一下我的解決方案,希望對一些朋友有所幫助。

上拉下拉刷新的主要代碼:

 myScroll = new iScroll('wrapper', {
  vScrollbar: false,
  useTransition: true,
  topOffset: pullDownOffset,
  onRefresh: function () {
   if (pullDownEl.className.match('loading')) {
    pullDownEl.className = '';
    pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
   } else if (pullUpEl.className.match('loading')) {
    pullUpEl.className = '';
    pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
   }
  },
  onScrollMove: function () {
   if (this.y > 5 && !pullDownEl.className.match('flip')) {
    pullDownEl.className = 'flip';
    pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Release to refresh...';
    this.minScrollY = 0;
   } else if (this.y < 5 && pullDownEl.className.match('flip')) {
    pullDownEl.className = '';
    pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';
    this.minScrollY = -pullDownOffset;
   } else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {
    pullUpEl.className = 'flip';
    pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Release to refresh...';
    this.maxScrollY = this.maxScrollY;
   } else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {
    pullUpEl.className = '';
    pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';
    this.maxScrollY = pullUpOffset;
   }
  },
  onScrollEnd: function () {
   if (pullDownEl.className.match('flip')) {
    pullDownEl.className = 'loading';
    pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Loading...';
    pullDownAction();
   } else if (pullUpEl.className.match('flip')) {
    pullUpEl.className = 'loading';
    pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Loading...';
    pullUpAction();
   }
  }
 });

頁面無法彈回的原因在于:手指劃出屏幕后touchend事件無法觸發(fā),回彈動畫就無法執(zhí)行。解決辦法就是:當手指接近屏幕邊緣的時候,手動觸發(fā)動畫方法。

在onScrollMove方法中插入判斷代碼:

  onScrollMove: function () {
   if((this.y < this.maxScrollY) && (this.pointY < 1)){
    this.scrollTo(0, this.maxScrollY, 400);
    return;
   } else if (this.y > 0 && (this.pointY > window.innerHeight - 1)) {
    this.scrollTo(0, 0, 400);
    return;
   }

   ......
  }

下面解釋一下這段代碼的意思。

this.y是頁面已經滾動的垂直距離,this.maxScrollY是最大垂直滾動距離,this.pointY手指當前的垂直坐標。

當this.y < this.maxScrollY,就是已經處于上拉的過程,當(this.y < this.maxScrollY) && (this.pointY < 1)時,處于上拉且手指已經觸及屏幕邊緣,這時候手動觸發(fā)this.scrollTo(0, this.maxScrollY, 400),頁面就開始回彈。

下拉過程也可以同理分析。

相關文章

  • JS小游戲之仙劍翻牌源碼詳解

    JS小游戲之仙劍翻牌源碼詳解

    這篇文章主要介紹了JS小游戲之仙劍翻牌源碼,是一款比較經典的卡牌類游戲,對于javascript游戲設計有不錯的借鑒價值,需要的朋友可以參考下
    2014-09-09
  • 可以用來調試JavaScript錯誤的解決方案

    可以用來調試JavaScript錯誤的解決方案

    我們在書寫js的過程中,經常會出現一些js錯誤,對于如果找出錯誤的解決方法就是關鍵,下面的文章就是相關的調試方法。
    2010-08-08
  • js中有關IE版本檢測

    js中有關IE版本檢測

    javascript中經常用到IE版本的判定,實現特定需求的代碼。檢測瀏覽器雖然不是一個什么好的做法,但是有時候還是很必要的
    2012-01-01
  • js判斷文本框輸入的內容是否為數字

    js判斷文本框輸入的內容是否為數字

    這篇文章主要介紹了js判斷文本框輸入的內容是否為數字,本文為大家分享了驗證文本框中的內容是否為數字的方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 微信小程序圖片上傳組件實現圖片拖拽排序

    微信小程序圖片上傳組件實現圖片拖拽排序

    最近在寫小程序過程中遇到一個拖拽排序需求,上網一頓搜索未果,遂自行實現,下面這篇文章主要給大家介紹了關于微信小程序圖片上傳組件實現圖片拖拽排序的相關資料,需要的朋友可以參考下
    2022-03-03
  • 純 JS 實現放大縮小拖拽功能(完整代碼)

    純 JS 實現放大縮小拖拽功能(完整代碼)

    這篇文章主要介紹了純js實現放大縮小拖拽功能,文中給大家提到了在開發(fā)過程中遇到的一些問題及解決方法,需要的朋友可以參考下
    2019-11-11
  • Bootstrap教程JS插件彈出框學習筆記分享

    Bootstrap教程JS插件彈出框學習筆記分享

    這篇文章主要為大家分享了Bootstrap教程JS插件彈出框學習筆記,為大家詳細介紹Bootstrap彈出框的使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JavaScript通過元素的ID和name設置樣式

    JavaScript通過元素的ID和name設置樣式

    這篇文章主要介紹了JavaScript通過元素的ID和name設置其樣式,下面有個不錯的示例,感興趣的朋友可以測試下
    2014-07-07
  • JS監(jiān)聽滾動和id自動定位滾動

    JS監(jiān)聽滾動和id自動定位滾動

    這篇文章主要為大家詳細介紹了JS監(jiān)聽滾動和id自動定位滾動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • javascript下漢字和Unicode編碼互轉代碼

    javascript下漢字和Unicode編碼互轉代碼

    這個是就是把漢字和Unicode編碼互轉的javascript代碼,也是從網上找到了,也許有人用得著!!
    2010-10-10

最新評論