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

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

当我们使用手机浏览器或微信浏览器打开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.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

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

关闭

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

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

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

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

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

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

解决微信返回上一页之后,页面不刷新

由于项目中使用了vue,使用了gulp和普通的页面跳转。并没有引入vue-router。所以不能使用 watch监控$router。微信公众号ios点击后退按钮,优选读取缓存,所以vue里的生命周期不会在进行调用。所以项目中执行隐藏分享qq,空间。等功能不被再次执行。

微信h5 input输入框软键盘关闭后,页面无法回到正常位置

在ios微信里面打开h5页面,当遇到input输入框调出软键盘时候。用户输入完成失去焦点,键盘收回后,会发现input输入框的位置发现变化的情况。这里需要监听失焦事件

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

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

微信内打开外部默认浏览器下载app

使用微信打开网址时,对于安卓端而言无法打开常用下载软件,手机APP等。大家常用的方法是,弹出一个遮罩提示用户在新的浏览器窗口打开。 但是我们基于微信接口开发了一款全新的手机端微信中推广助手,用户在微信中点击的话

nodeJS微信JSDK 配置

微信公众平台申请一个测试公众号;配置nodeJS 使用express框架搭建服务器;使用内网穿透工具(例如:natapp)把本地服务器映射到公网上去;前端使用微信JSDK

推荐几款常用的微信公众号排版工具

作为一个新媒体小编,我们常接触的几个工具,莫过于排版、素材、图片这几个了。今天天天主要是想给大家介绍几款我常用的微信排版工具,希望对大家有用。

QQ/微信里域名经常被举报二屏蔽?微信/QQ屏蔽域名举报按钮的实现方式

近很多老哥问我,为啥自己的域名在QQ/微信里面很容易被封?1、页面里面的内容违规或者诱导被举报而导致的拦截;2、用户和同行举报;3、腾讯等定期会检查;

点击更多...

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