移动端浏览器和微信浏览器上禁止body的滚动条

一般禁止body滚动的做法就是设置overflow:hidden。

但是很奇怪的发现在移动端浏览器和微信浏览器上这个不起作用,然后我分析了我的写法,就是在body上加了一个class去定义属性,然后改成标签的定位,如body{overflow:hidden;},这个实现是可以的,没有滚动条。

再进一步分析,如果要用class去实现没有滚动条,如下代码设置:

.index_body {
    overflow-y: hidden;/*为了兼容普通PC的浏览器*/
    height: 100%;
    position: fixed;  
}

这个就是完全的禁止上下滑动,没有滚动条,且在iOS的safari浏览器上完全不能上下滚,但是确发现微信浏览器上可以上下缩动(下面再解决)。

我最后发现,上面这种解决是普遍的浏览器做法,如果要更彻底一点,就直接使用js代码去控制touchmove的事件,直接精致,这个在微信和手机浏览器上完成可行。

代码如下:

/*去掉手机滑动默认行为*/
$('body').on('touchmove', function (event) {
    event.preventDefault();
});

我还收集了一些设置隐藏滚动条的方法:

1、body加position:fixed;width:100%;height:100%。

2、给要滚动的元素添加一个父级,设定高度,overflow:auto。

3、html,body{height:100%;overflow:hidden}。

参考:http://www.cnblogs.com/lbcheng/p/6044303.html

 

经过上面的设置,如果用户在微信浏览器上不能滚动,但是跳出到了iOS的safari浏览器之后,会有很多变数,比如高度不够,这时滚动也会好一些,那么我这样设置:

1、如果在微信上,默认禁止滚动,并且连默认的上下缩滑都不能。

2、当跳出到手机浏览器上完全可以滑动。

上面的思路实现:

1、通过微信useragent来判断,如果是微信浏览器自动加入class去设置。

2、非微信useragent就默认不加class。

 

具体实现:

微信上,禁止上下缩滑:

/*去掉手机滑动默认行为*/
$('body').on('touchmove', function (event) {
    event.preventDefault();
});

判断微信浏览器:

/*微信浏览器特殊处理*/
if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){
    $('body').addClass('index_body');//添加禁止滚动的样式
}else{
    $('body').removeClass('index_body');//去除禁止滚动的样式
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动端H5调用微信支付是指在手机上运行的网页应用使用微信支付进行支付交易。移动端H5通常是通过微信内置的浏览器或者第三方浏览器打开的网页应用。要实现移动端H5调用微信支付,需要进行以下步骤: 首先,开发人员需要在微信公众平台上注册并申请一个微信支付商户号。商户号是与微信支付相关联的唯一标识符。 接下来,开发人员需要在移动端H5的网页应用中引入微信支付的JSAPI。微信支付提供了一组JavaScript API,开发人员可以通过这些API来实现支付功能。 在用户点击支付按钮时,网页应用需要调用微信支付的统一下单API,向微信服务器发送支付请求。支付请求需要包括商户号、订单号、支付金额、用户的openid等必要信息。 微信服务器收到支付请求后,会返回一个prepay_id给移动端H5的网页应用。网页应用可以将这个prepay_id传递给微信支付的JSAPI,用于发起支付。 在调用微信支付的JSAPI时,需要传递一些必要的参数,如appId、timeStamp、nonceStr和签名等。这些参数是为了验证支付请求的合法性,并确保支付过程的安全性。 最后,用户确认支付后,网页应用会调用微信支付的JSAPI发起支付。微信支付会弹出一个支付窗口,用户可以在该窗口中输入支付密码完成支付。 支付过程结束后,微信服务器会将支付结果通知给网页应用。网页应用可以根据支付结果进行相应的处理,如提示用户支付成功或失败,并进行相应的操作。 总之,移动端H5调用微信支付需要开发人员在网页应用中引入微信支付的JSAPI,并按照微信支付的流程进行相应的调用和处理,以实现支付功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值