1. 程式人生 > >H5解決瀏覽器,微信背景的上下滑動問題,脫離視窗的js區域性滾動解決方法

H5解決瀏覽器,微信背景的上下滑動問題,脫離視窗的js區域性滾動解決方法

當我們使用手機瀏覽器或微信瀏覽器開啟Html網頁的時候,如果上下滑動頁面,頁面就會出現黑色的空白(如圖所示)。那麼如何解決滑動的時候如何避免出界,出現頭部和底部的黑底?

js程式碼:

var method ={
	setScroll:function(isreturn,classname){//區域性滾動新增樣式local_scroll,回撥
		if(classname==undefined){
			classname="local_scroll";
		}
		classname="."+classname;
		var elm=document.querySelector(classname);
		var
isover=true;//用於判斷回撥是否執行一次 var overscroll = function(el,isreturn) { if(el==null){ return; } el.addEventListener('touchstart', function() { var top = el.scrollTop,totalScroll = el.scrollHeight,currentScroll = top+el.offsetHeight; if(top === 0) { el.scrollTop = 1; }else
if(currentScroll === totalScroll) { el.scrollTop = top - 1; } if(isover && isreturn!=null){ isreturn();isover=false; } }); el.addEventListener('touchmove', function(evt) { if(el.offsetHeight < el.scrollHeight){evt._isScroller = true;} }); } if
(elm!=null){//取消body的滾動 document.body.addEventListener('touchmove', this.handler, false); } overscroll(elm,isreturn); }, handler:function(){ if(!event._isScroller){ event.preventDefault(); } }, };

html程式碼:

<style>
body,html{
    margin: 0;padding: 0;height: 100%;
    .local_scroll{//區域性滾動
        position:absolute; overflow:scroll; -webkit-overflow-scrolling: touch; top:0; left:0; bottom:0; right:0
    }
    ::-webkit-scrollbar{//scroll滾動條設定
        width: 0px; height: 0px;background-color: #fff;  
    }
}
</style>

<body>
  	<div class="local_scroll">
  		<!--這是內容-->
  	</div>	
</body>

解決方法說明:通過移除body元素在螢幕上滑動的時候連續地觸發的‘touchmove’事件,然後在body內部追加一層元素通過定位佈局,同時監聽螢幕上下滑動時間來實現,如果還有更簡單的方法介紹的請留言或者私信我。