移动 - SAFARI:在将固定位置应用于身体时防止滚动重置到移动设备顶部

问题描述 投票:0回答:1

我的网站上有一个弹出窗口,它可以从隐藏,最小化,到全屏状态,当全屏时,我显然想阻止后面页面的滚动。所以我在全屏时添加和删除 noscroll 类:

  .noscroll {
    height: 100%;
    overflow: 100vh; // fallback for browser not support svh
    overflow: 100svh;
  }

它在桌面上就像 sa charm,但在移动 safari 上,当添加 noscroll 类时,主体的滚动位置将重置为顶部。

我已经尝试过在线解决方案,包括:

  • 添加一个位置:固定到 noscroll 类 -> 在我的情况下不起作用;
  • 保存滚动位置,以便在弹出窗口被删除后再次添加它 -> 就像在 Twitter 或 Instagram 上一样,当我们到达页面顶部时,应用程序会搜索新内容,每次打开弹出窗口时都会触发此操作,我需要避免发生后重置滚动位置并不能解决我的问题

有没有一种方法可以简单地防止身体跳跃,同时又防止其滚动!?

javascript mobile sass scroll safari
1个回答
0
投票

有完全相同的问题,对我来说,解决方案是将 html 而不是 body 定位为

overflow: hidden

希望它能解决您的问题!

© www.soinside.com 2019 - 2024. All rights reserved.