vue解决ios弹层滚动,底部body跟着滚动问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue解决ios弹层滚动,底部body跟着滚动问题相关的知识,希望对你有一定的参考价值。

参考技术A 在页面中对某一个事情详细说明,这个时候需要弹层来显示,弹层内容较长需要滚动,但是当滚动到底部时body会滚动,当我们关闭弹层时页面阅读的位置发生了变化,用户又要重新找到阅读的地方,这样用户体验极不友好。

网上找了很多的资料,最后都会有一些问题,然后就自己想办法解决下!

首先解决body会滚动的问题:

这样做的原因是显示弹层给body设置样式overflow:hidden有效(禁用滚动条这样解决了安卓,到ios问题还是一样);

在ios中弹层滚动到底部时,用户先释放掉当前的滚动的事件(停止触摸让滚动回弹等执行完),再执行向下滚动时事件会被他的父级捕获,如果用户操作比较快(ios一般都有300ms的过渡动画), 马上再直接向上滚动,这个时候依然滚动的是父级。因为我们当前弹层触摸事件丢失了, 弹层就没有办法滚动了(这个时候要再次释放触摸滚动事件才可以向上滚动)。

这个时候我们强大的js就要上马了!!

上面几乎解决了ios滚动的所有问题,只是滚动到底部没有回弹的效果了!!!

以上是关于vue解决ios弹层滚动,底部body跟着滚动问题的主要内容,如果未能解决你的问题,请参考以下文章

vue页面有弹层,禁止页面滚动

vue中禁止页面滚动/滚动事件穿透-弹出蒙版时弹出层下面还可以滚动问题解决

HTML JS 弹层后底部页面禁止滚动处理

弹出框滑动,底部不跟着滑动

移动端弹窗滚动时,底部盒子跟着一起滚动

解决ios移动端,滑动回弹效果遮挡页面顶部和底部Fixed元素的问题