javascript - JavaScript 避免在 position:fixed 后重置到页面顶部
问题描述
我有滚动分页到我的应用程序,我在其中显示一些图像。当我单击图像时,会打开一个模式以全屏显示图像。为了防止在正文中滚动,我为html, body
标签提供了以下类。问题是,如果我向下滚动 40 个图像选择一个图像,并且在我关闭该模式后,图像源再次从页面顶部开始显示。我想避免这种情况从单击该图像之前的位置继续。
.item-mdl-plh {
overflow: hidden !important;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
我在这里发现了类似的问题,并实现了这个,但它不起作用,scrollTop
总是从 feed div 元素返回 0。
和其他人在 jQuery 但不明白:
使用 jQuery 将 <body> 位置设置为固定时避免返回到页面顶部
我想了解如何使用 vanilla JavaScript 实现我想要的这种行为。
解决方案
如果您决定使用该scrollTop
方法,则可以使用此方法。
我不知道为什么,但scrollTop
总是在 chrome 中返回 0。但pageYOffset
返回预期值。
所以你可以使用这样的东西。
let scrollTop = 0;
function open_modal() {
scrollTop = pageYOffset || document.documentElement.scrollTop || 0;
// Modal
}
function close_modal() {
// Remove modal
scrollTo(0, scrollTop); // After removing fixed position from body, scroll back to last recorded posititon
}
推荐阅读
- ios - SwiftUI 抱怨表达式类型不明确,在 navigationBarItems 前导中没有更多上下文
- android - Flutter 您需要在模块错误中将 compileSdk 设置为至少 28
- asp.net-core - 在 Entity Framework Core 中查询多对多关系的问题
- python - 当我尝试在 pygame 中发射子弹时,我的游戏崩溃了
- python - 如何使用“?” (这是什么小部件)在 PyQT 对话框的标题栏上
- python - 无法在简单数据集上训练 Tensorflow
- elixir - 带有函数头和默认值的 Elixir 装饰器
- c++ - 每个顶点的正向路径
- r - 垂直中心线
- javascript - 使用 Javascript 为 JSON 中的每个对象获取一个子对象