苹果手机 iOS 系统 ,使用scroll-view会把scroll-view里包裹的遮罩层截断失效,(苹果手机、ios系统使用scroll-view,fixed定位层级不正确)

苹果手机 iOS 系统 ,使用scroll-view会把scroll-view里包裹的遮罩层截断失效,(苹果手机、ios系统使用scroll-view,fixed定位层级不正确)

产生原因

因为 iOS 下加了 -webkit-overflow-scrolling: touch,这个会产生滚动惯性,体验更好,但会改变 fixed 的行为;
而且在 iOS 中,position: fixed 对于 scroll-view 中的元素来说,是相对于 scroll-view 容器进行位置固定的,而不是相对于浏览器窗口。

这意味着当 scroll-view 滚动时,position: fixed 的元素会保持相对于 scroll-view 的相同位置,而不会相对于浏览器窗口移动。

这是因为 scroll-view 在 iOS 中被视为一个独立的滚动容器,具有自己的坐标系。当 scroll-view 滚动时,其内部元素的位置会相对于 scroll-view 的坐标系进行调整,而不是相对于浏览器窗口的坐标系。

解决方法

一、这是官方给出的回答 在底下也给出了解决方法

在这里插入图片描述
在这里插入图片描述

二、总结解决方法

1、方法一:把需要fixed定位的元素放在scroll-view外面
2、方法二:在全局(注意是在全局文件中)app.vue中 写入

.wx-scroll-view {
	-webkit-overflow-scrolling: auto;
}

3、方法三:把scroll-view中包裹的需要fixed定位的元素使用根标签root-portal进行包裹
例如 u-popup是弹出层 在弹出层上有fixed定位属性

<root-portal>
	<u-popup v-model="specClass" mode="bottom" border-radius="24" closeable z-index="99999">
		<view class="subLeftImg">哈哈哈</view>
	</u-popup>
</root-portal>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值