首頁 >web前端 >js教程 >JavaScript實作禁止微信瀏覽器下拉回彈效果

JavaScript實作禁止微信瀏覽器下拉回彈效果

韦小宝
韦小宝原創
2018-03-07 18:01:313567瀏覽

這篇文章主要為大家詳細介紹了JavaScript禁止微信瀏覽器下拉回彈效果的方法,具有一定的參考和學習JavaScript的價值,對JavaScript感興趣的小伙伴們可以參考一下本篇文章

本文實例為大家分享了JavaScript禁止微信瀏覽器下拉回彈的效果,供大家參考,具體內容如下

方法1:

<script type="text/javascript"> 
  var overscroll = function(el){ 
    el.addEventListener(&#39;touchstart&#39;, function(){ 
      var top = el.scrollTop; 
      var totalScroll = el.scrollHeight; 
      var currentScroll = top + el.offsetHeight; 
      if(top === 0) { 
        el.scrollTop = 1; 
      }else if(currentScroll === totalScroll){ 
        el.scrollTop = top - 1; 
      } 
    }); 
    el.addEventListener(&#39;touchmove&#39;, function(evt){ 
      if(el.offsetHeight < el.scrollHeight){ 
        evt._isScroller = true; 
      } 
    }); 
  } 
  overscroll(document.querySelector(&#39;.scroll&#39;));//哪里需要可以局部滚动,添加一个“scroll”的class 
  document.body.addEventListener(&#39;touchmove&#39;, function(evt) { 
    if(!evt._isScroller){ 
      evt.preventDefault(); 
    } 
  }); 
</script>

此方法的優缺點:
優點:支援局部捲動;
缺點:瀏覽器本身超出頁面出現的滾動被停用掉了,需要改為局部滾動,且局部滾動的地方需要加上「scroll」的class。
註:如果同一個頁面多個局部捲動,需要將

overscroll(document.querySelector(&#39;.scroll&#39;);

改為

for(var i=0;i<document.querySelectorAll(&#39;.scroll&#39;).length;i++){
overscroll(document.querySelectorAll(&#39;.scroll&#39;)[i]);
}

方法2:

#
<script type="text/javascript"> 
  function stopDrop(){ 
    var lastY;//最后一次y坐标点 
    $(document.body).on(&#39;touchstart&#39;, function(event) { 
      lastY = event.originalEvent.changedTouches[0].clientY;//点击屏幕时记录最后一次Y度坐标。 
    }); 
    $(document.body).on(&#39;touchmove&#39;, function(event) { 
      var y = event.originalEvent.changedTouches[0].clientY; 
      var st = $(this).scrollTop(); //滚动条高度  
      if (y >= lastY && st <= 10) {//如果滚动条高度小于0,可以理解为到顶了,且是下拉情况下,阻止touchmove事件。 
        lastY = y; 
        event.preventDefault(); 
      } 
      lastY = y; 
    }); 
  } 
</script>

此方法的優缺點:
優點:支援瀏覽器本身超出頁面的捲動
缺點:不支援局部捲動

以上是JavaScript實作禁止微信瀏覽器下拉回彈效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn