问题描述:
scroll-view,里面的自定义组件中包含一个fixed弹框,但这个弹框无论怎么设置层级,只能显示在当前scroll-view的有效宽度内。安卓、开发工具都正常。ios不行。
原因:
因为 iOS 下加了 -webkit-overflow-scrolling: touch,这个会产生滚动惯性,体验更好,但会改变 fixed 的行为,建议不在 scroll-view 里有 fixed 元素
解决:
将scroll-view标签改为view,并设置样式:
overflow-x: hidden;
overflow-y: scroll;
-webkit-overflow-scrolling: auto !important; // 禁用iOS滑动惯性
&::-webkit-scrollbar {
display: none; // 隐藏滚动条
}
-webkit-overflow-scrolling
属性控制元素在移动设备上是否使用滚动回弹效果。
属性值:
auto
使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。touch
使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。
参考文档:
MDN
更多推荐
微信小程序开发——scroll-view里边放fixed元素后样式错乱
发布评论