关闭

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

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

当我们使用手机浏览器或微信浏览器打开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的微信环境时候,使用重定向跳转的方式

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

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

移动端检测微信浏览器返回,关闭,进入后台操作

最近做一个倒计时记录学习时长项目,需要在用户点击浏览器的返回按钮或者直接关闭浏览器,或者直接退出微信或者进入后台时记录下当前页面的进度,下次进去从上次退出的地方开始倒计时。一开始想的很简单直接监测浏览器的返回事件window.onbeforeunload

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

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

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

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

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

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

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

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

js判断是否是微信浏览器方法总结【整理4种方式】

在实际开发中,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢?以下提示了四种方法,每一种都可以进行判断是否是微信浏览器。

解决微信返回上一页.页面不刷新问题

在项目中遇到的一个神奇的 BUG,点击「返回」按钮返回到上一页,但是页面却没有刷新。这是 ios 微信的缓存机制造成的,跳转到下一页时仍然会缓存当前页。

微信JS支付代码 前端调用微信支付接口

跟大家分享一段微信支付的js代码片段、V3版的微信支付没有paySignKey参数、基本上是直接复制就可以使用了、改一改自己的参数就好了

点击更多...

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