当我们使用手机浏览器或微信浏览器打开html网页的时候,如果上下滑动页面,页面就会出现黑色的空白(如图所示)。那么如何解决滑动的时候如何避免出界,出现头部和底部的黑底?
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内部追加一层元素通过定位布局,同时监听屏幕上下滑动时间来实现,如果还有更简单的方法介绍的请留言或者私信我。
ios因为微信内置浏览器对 history 的支持不够全面 所以对于开启了 History Mode 的 SPA 应用,只会保存第一条 url 只要每个页面都刷新一次,判断环境为iOS的微信环境时候,使用重定向跳转的方式
一个月黑风高的晚上,你独自刷着朋友圈,突然一个陌生女子要求。添加好友,你第一反应是什么?更要命的是没聊几句话,对方居然要求“裸聊”!
最近做一个倒计时记录学习时长项目,需要在用户点击浏览器的返回按钮或者直接关闭浏览器,或者直接退出微信或者进入后台时记录下当前页面的进度,下次进去从上次退出的地方开始倒计时。一开始想的很简单直接监测浏览器的返回事件window.onbeforeunload
近很多老哥问我,为啥自己的域名在QQ/微信里面很容易被封?1、页面里面的内容违规或者诱导被举报而导致的拦截;2、用户和同行举报;3、腾讯等定期会检查;
在ios微信里面打开h5页面,当遇到input输入框调出软键盘时候。用户输入完成失去焦点,键盘收回后,会发现input输入框的位置发现变化的情况。这里需要监听失焦事件
在做微信公众平台网页授权时,发现每次请求授权链接时都会重定向链接redirect_uri都会自动请求两次,由于并发导致了一些问题,那么,为什么会请求两次呢?,调试时发现会访问两次,一次是301,页面重定向了,第二次跟第一次就差这个参数connect_redirect=1
由于项目中使用了vue,使用了gulp和普通的页面跳转。并没有引入vue-router。所以不能使用 watch监控$router。微信公众号ios点击后退按钮,优选读取缓存,所以vue里的生命周期不会在进行调用。所以项目中执行隐藏分享qq,空间。等功能不被再次执行。
在实际开发中,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢?以下提示了四种方法,每一种都可以进行判断是否是微信浏览器。
在项目中遇到的一个神奇的 BUG,点击「返回」按钮返回到上一页,但是页面却没有刷新。这是 ios 微信的缓存机制造成的,跳转到下一页时仍然会缓存当前页。
跟大家分享一段微信支付的js代码片段、V3版的微信支付没有paySignKey参数、基本上是直接复制就可以使用了、改一改自己的参数就好了
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!