H5解决浏览器,微信背景的上下滑动问题,脱离窗口的js局部滚动解决方法

时间: 2017-10-27阅读: 3952标签: 微信

当我们使用手机浏览器或微信浏览器打开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内部追加一层元素通过定位布局,同时监听屏幕上下滑动时间来实现,如果还有更简单的方法介绍的请留言或者私信我。

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/17

解决vue在ios微信“复制链接”始终为初始地址的问题

ios因为微信内置浏览器对 history 的支持不够全面 所以对于开启了 History Mode 的 SPA 应用,只会保存第一条 url 只要每个页面都刷新一次,判断环境为iOS的微信环境时候,使用重定向跳转的方式

Ios中微信页面返回上一页去除缓存几种常见思路

开发微信H5页面的时候,在Ios微信内置浏览器中点击返回按钮返回上一页时,上一页面不会被刷新。在浏览器缓存机制中,在返回上一页的操作中, html/js/css/接口等动静态资源不会重新请求

记录一次开发微信网页分享

最近在做一个项目需求,分享领好书活动,获取用户的个人信息以及unionID,并诱导用户分享给好友或朋友圈,达到裂变拉新的目的。在做的过程中遇到了一些坑的地方,所以回过来总结一下

解决微信公众平台网页授权两次或多次重定响应问题

在做微信公众平台网页授权时,发现每次请求授权链接时都会重定向链接redirect_uri都会自动请求两次,由于并发导致了一些问题,那么,为什么会请求两次呢?,调试时发现会访问两次,一次是301,页面重定向了,第二次跟第一次就差这个参数connect_redirect=1

微信跳转外部浏览器打开的代码实现

在我们做营销活动或推广宣传的时候,容易遇到域名被封,无法跳转app下载等情况。这时需要微信跳转外部浏览器打开页面的功能,目前ios只能通过遮罩层来提示用户,对于安卓可以直接跳转外面默认浏览器

用cookie解决新版微信中H5页面底部白条问题

实现思路是,引入cookie功能,创建一个存储访客微信用户信息的cookie。当用户首次访问时,通过oauth授权获取用户信息,并存储于cookie中。当用户再次访问时,判断是否有相应cookie来调取用户信息,这样就不会触发二次授权。

Kbone:微信官方推出 Web 前端和小程序统一框架

最近微信官方重磅推出了一个统一 Web 前端和小程序的框架 —— Kbone 。微信小程序的底层模型和 Web 端不同,开发者无法直接把 Web 端的代码挪到小程序环境内执行。

H5微信JS-SDK实现分享朋友、朋友圈以及QQ自定义分享

先登录微信公众平台进入公众号设置的功能设置里填写JS接口域名,支持使用AMD/CMD标准加载方法,通过config接口注入权限验证配置,通过ready接口处理成功验证,通过error接口处理失败验证

微信开发-自定义分享卡片-node.js实现

本篇主要讲述,如何在微信中打开自家的页面,在然后在用户分享的时候,能由我们自定义分享出去后,展示的页面卡片中的页面标题、页面描述、页面图片和分享链接。

套路!陌生美女加微信好友,提出激情裸聊,然后……

一个月黑风高的晚上,你独自刷着朋友圈,突然一个陌生女子要求。添加好友,你第一反应是什么?更要命的是没聊几句话,对方居然要求“裸聊”!

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!