IOS 游览器 overflow失效 弹窗功能,禁止滑动失效等,解决方案:

 首先先为body下面设置一个div,名字如图,这个div要求包裹body以下所有部位,为什么要做这步呢?原因是ios使用游览器safari,他的passive属性默认是true 意思也就是ios认为用户希望将body内所有元素展现给用户,所以你正常对body进行overflow-y:hidden是无效的,但是安卓可以,因为谷歌等等很多游览器的passive默认是false,所以允许你对body进行修改,所以ios既然不让我们修改,我们就可以设置一个傀儡body也就是#shopify...让他代替body实现我们想要的需求,所以需要放置body下并且覆盖body内部所有内容,其实就是接替body工作。

 

以上两部就能实现弹窗出现禁止滑动了,但是缺点是还能进行小部分滑动隐藏头部等等,这种很难避免,为了做到完全禁止需要在弹窗出现的位置或者事件里面加入下列代码,阻止默认行为,因为ios也是不太支持body的默认行为禁止,直接修改body会失效,我们依旧使用傀儡dom操作。

 最后结束的时候,需要恢复滑动,才能正常滑动页面。

 以上方法并非本人探索,是带我的一个大佬教我的,我觉得很厉害分享给大家,因为我在网上查找的时候并没有看到很好的解决方法,或者说我看不懂,多亏了带我的大佬,再次分享给大家!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

方法二:

今天带我得大佬又告诉我另外一个方法,更简单完成,就是阻止事件冒泡,原因很简单,为什么滑动弹窗模块会导致body处滑动,就是因为touchmove事件通过事件冒泡得方式给body元素得touchmove触发了,那么只需要给对应得弹窗还有他后面得阴影加上阻止事件冒泡函数即可解决这种问题得产生。代码如下 可参考:

$('#content').bind('touchmove',function(e){

        e.stopPropagation()

      })

下面这个就是为弹窗得背景和弹窗都加上阻止事件冒泡。

$('.cc-popup-background,.cc-popup-modal').bind('touchmove',function(e){

        e.stopPropagation()

      })

强烈推荐方法二,事件冒泡和事件委托其实都知道,不过理解层次较浅,不是大佬这样做了,我都没往那块去想。看来大佬还是大佬 估计是遇到和解决得问题多了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值