这篇文章主要介绍小程序如何实现自定义弹层禁止页面滚动,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
方案一:通过小程序自定义组件scroll-view实现布局,动态修改scroll-y属性 缺点:布局局限于scroll-view组件,大部分需求都满足不了
方案二: 自定义弹层蒙层或者外层容器添加catchtouchmove事件
```js <view class='mask-box' catchtouchmove='preventTouchMove'>弹层内容</view> ``` 缺点:弹层滑动不了;适用于自定义弹层不滑动的布局
方案三:动态添加给最外层元素添加position:fixed样式
```js <view style='{{isMask ? "position:fixed;top:0;left:0;" : " " }}'>内容区</view> ``` 缺点:当isMask为true时,页面始终会回到顶部;体验不好
方案四:通过动态修改样式处理(推荐)
原理: 小程序API给我们动态修改page样式,那我们换个思路,最开始给page设置*overflow:hidden*, 最外层布局设置 *overflow:auto* 但是设置height属性时还是有坑。如下: - *height:100vh* 时,上拉加载、下拉刷新在安卓端失效,ios没问题;适用于当前页面不需要上拉、下拉刷新。 - *page* 设置 *overlfow:hidden;* 时,安卓端页面整体滑动不了;适用于底层布局不需要滑动 *page* 设置 *overflow: visible*, 以上问题均解决 代码如下:wxml ```js <view class="content {{isMask ? 'page-hidden' : ''}}"> page { overflow: visible; height: 100%; } .group-buying-list{ height: 100%; overflow: auto; -webkit-overflow-scrolling: touch; } .page-hidden{ overflow: hidden } ```
以上是“小程序如何实现自定义弹层禁止页面滚动”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。