千家信息网

微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要讲解了"微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"微信小程序中怎么使用
千家信息网最后更新 2025年01月31日微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动

这篇文章主要讲解了"微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动"吧!

scroll-view滚动穿透,阻止滚动

页面弹窗阻止滚动是一种常见的问题,这里简单介绍小程序scroll-view的一种解决方式

常用阻止滚动方式

在不使用scroll-view的弹窗中, 为position为absolute或fixed的元素设置catchtouchmove空事件就可以阻止弹窗下的页面因事件穿透滚动

也可直接写catchtouchmove,相当于绑定了事件名为true的事件

问题场景

在小程序中,在absolute或fixed的类弹窗布局中。要显示列表、长文本段落等可滚动元素,必须使用scroll-view组件,无法阻止页面本身的滚动

解决办法

既然无法简单的阻止事件穿透,就在页面可滚动的元素本身想想办法:

页面滚动元素

小程序中的简单布局,在页面内容超出一屏时,滚动的元素是page

如何让页面不滚动

将page的高度设为100%,页面最外层放一个view,打开弹窗时通过一个class增加样式,设页面高度100%,overflow: hidden来停止滚动

打开弹窗时设isStopBodyScroll为true,关闭时设为false

 
.scroll-lock { height: 100%; overflow-y: hidden;}

存在的问题

这样设置页面会回到顶部,期待有更好的解决方式或官方对这个问题提供支持

感谢各位的阅读,以上就是"微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动"的内容了,经过本文的学习后,相信大家对微信小程序中怎么使用scroll-view实现滚动穿透和阻止滚动这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0