Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overlay、Popup组件小程序端不能正常关闭lockScroll #103

Closed
xiaohe0601 opened this issue Nov 13, 2023 · 2 comments · Fixed by #107
Closed

Overlay、Popup组件小程序端不能正常关闭lockScroll #103

xiaohe0601 opened this issue Nov 13, 2023 · 2 comments · Fixed by #107

Comments

@xiaohe0601
Copy link
Member

nutui-uniapp 版本号

1.4.1

平台

weapp

重现链接

重现步骤

nut-overlay或nut-popup将lock-scroll设置为false

期望的结果是什么?

lock-scroll设置为false后,不再拦截弹窗内部的touchmove事件

实际的结果是什么?

lock-scroll设置为false后,弹窗内部的touchmove事件依然被拦截

环境信息

No response

其他补充信息

@touchmove.stop.prevent="props.lockScroll ? toMoveHandle : ''"

只要加了 .stop 在小程序端就会被编译成 catch:,后面的值无论是什么都会拦截 touchmove 事件

@yang1206
Copy link
Member

目前没有一个很好的方法控制lock-scroll,考虑后面的版本要不要弃用这个属性,用户自己使用 page-meta

@xiaohe0601
Copy link
Member Author

微信小程序端必须是 catchtouchmove="{{ lockScroll ? 'toMoveHandle' : '' }}" 这种形式,才能有效控制是否 catch

但是uniapp把 @touchmove.stop.prevent="props.lockScroll ? toMoveHandle : ''" 编译成了catchtouchmove="{{o}}"o的值是一个函数来返回 props.lockScroll ? toMoveHandle : '',这就导致了 catchtouchmove 接收到的值是一个函数,也就永远都会拦截 touchmove 事件了;

如果没有更好的办法,建议是废弃这个属性让用户自己处理,现在popup内部除了scroll-view以外其他元素都不能滑动,影响有点大了

yang1206 added a commit that referenced this issue Nov 14, 2023
小程序移除`lock-scroll`属性支持

BREAKING CHANGE: 小程序移除`lock-scroll`属性支持

所有依赖overlay的组件的`lock-scroll`属性同理也将不再支持小程序与 APP 平台,禁用滚动穿透方法可参考文档

closed #103
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants