javascript - 隐藏 HTML 标签上的溢出使浏览器跳转到页面顶部

标签 javascript html css angularjs overflow

当我在 html 标签上设置样式时,就像在 AngularJS 中一样:

angular.element($document[0].documentElement).css('overflow', 'hidden');

页面跳转到页面顶部。我怎样才能避免这种情况?

我正在尝试显示整页叠加层,当我尝试滚动时,背景会滚动。当我在 html 标签上设置 overflow: css 样式时,它不会滚动。这让我遇到了这个问题。

最佳答案

当您隐藏文档时,实际上是在告诉浏览器不要滚动。这就是您被定向到页面顶部的原因,因为页面本质上不再超出视口(viewport)。

虽然不是每个浏览器都会将您带到页面的顶部(这里的预期行为是将用户锁定在他们所在的页面),比如对 hash 的主动跟踪(例如 mypage.com/#ShowLogin/) 就像 Angular 经常用于路由一样,很容易导致页面跳转到屏幕顶部。


编辑:

如果你想保留背景使其不随页面滚动,请使用属性background-attachment:

html, body {
  ... /* Other code here */
  background-attachment: fixed;
}

关于javascript - 隐藏 HTML 标签上的溢出使浏览器跳转到页面顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323482/

相关文章:

javascript - 刷新后div滚动到顶部需要停止自动滚动到顶部

javascript - 在页面顶部插入 div 而不使用 javascript 覆盖

java - 如何将 Javascript 中的数组打乱为与 Java 中的 Collections.shuffle(array, seeds) 相同的顺序

javascript - 使用 javascript 从输入文本字段中检索 json 对象值

html - 如何获取子标题和表格内联?

javascript - 如何使用 css 将两个 primefaces 按钮居中?

html - 如何在 SAPUI5 中将 CSS 动态添加到 Controller

jquery - 调整图像大小但保持其比例——是否可以通过 HTML、CSS 或 jQuery 实现?

html - 如何创建这样的元素(自适应)?

javascript - 在图像周围环绕展开的文本