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>
此方法的優缺點:
優點:支援瀏覽器本身超出頁面的滾動
缺點:不支援局部滾動
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。