1. 程式人生 > >JavaScript禁止微信瀏覽器下拉回彈效果

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

本文例項為大家分享了JavaScript禁止微信瀏覽器下拉回彈的效果

方法1:

        <script type="text/javascript">             var overscroll = function(el){                 el.addEventListener('touchstart', 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('touchmove'
, function(evt){                 if(el.offsetHeight < el.scrollHeight){                     evt._isScroller = true;                 }                 });             }             overscroll(document.querySelector('.scroll'));//哪裡需要可以區域性滾動,新增一個“scroll”的class             document.body.addEventListener('touchmove', function(evt) {                 if
(!evt._isScroller){                 evt.preventDefault();                 }             });         </script> 此方法的優缺點:
優點:支援區域性滾動;
缺點:瀏覽器本身超出頁面出現的滾動被禁用掉了,需要改為區域性滾動,且區域性滾動的地方需要加“scroll”的class。
注:如果同一個頁面多個區域性滾動,需要將
overscroll(document.querySelector('.scroll');
改為
for(var i=0;i<document.querySelectorAll('.scroll').length;i++){
overscroll(document.querySelectorAll('.scroll')[i]);
}

方法2:

        <script type="text/javascript">             function stopDrop(){                 var lastY;//最後一次y座標點                 $(document.body).on('touchstart', function(event) {                 lastY = event.originalEvent.changedTouches[0].clientY;//點選螢幕時記錄最後一次Y度座標。                 });                 $(document.body).on('touchmove', 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> 此方法的優缺點:
優點:支援瀏覽器本身超出頁面的滾動
缺點:不支援區域性滾動