【问题标题】:Stop page from going to the top after making body position fixed固定正文位置后停止页面转到顶部
【发布时间】:2019-06-28 20:05:34
【问题描述】:

你好,这是我的第一篇文章。

我在这里搜索了很多,但在将位置固定到正文后,我无法弄清楚如何阻止我的页面进入顶部。

我想要的与此类似,但我无法使其工作Prevent page scrolling to top upon adding fixed position

让我说清楚。当我的移动菜单打开时,我想让正文不可滚动(固定),但添加固定位置会使我的页面转到顶部。

CSS

.site-navigation { position: fixed; width: 100%; }
@media screen and (max-width: 991px) {
.is-menu-toggled-on .nav-menu {  
    height: 400px;
    overflow-y: scroll;
    overflow-x:hidden;} 

.is-menu-toggled-on body
    {
    position: fixed;
    overflow: hidden;
    width: 100%
    }

看这里。每次我按下汉堡菜单图标(3 行)并且菜单栏打开下面的页面时都会滚动回到顶部...我想让它在当前位置不可滚动 --> https://imgshare.io/image/SQzVZ

我知道这可以与一些 javascript 一起使用,我已经从网站上尝试了很多,但我做不到。如果您能帮助我,我将不胜感激。

【问题讨论】:

  • 你能发布你正在使用的完整代码吗?
  • 嗯,我不知道你的意思,但这里是它的完整版本 .site-navigation { position: fixed;宽度:100%; } @media screen and (max-width: 991px) { .is-menu-toggled-on .nav-menu { height: 400px;溢出-y:滚动;溢出-x:隐藏;} .is-menu-toggled-on body {位置:固定;溢出:隐藏; width: 100% }} 这是来自 Wordpress 主题的附加 CSS
  • 请同时发布您的 html
  • 我不知道如何准确找到它...它是来自 themeforest 的自定义主题...抱歉我有点菜鸟
  • 我只希望主体在有人打开菜单时保持固定在用户留下的相同位置。但现在它登上了顶峰

标签: javascript jquery css


【解决方案1】:

只需在 html 上添加 overflow: hidden; 而不是 position: fixed; 以防止滚动。最后touch-action: none; pointer-events: none;也是。

html {
    overflow-x: hidden;
    overflow-y: auto;
}

html.is-menu-toggled-on {
    overflow: hidden;
    pointer-events: none;
    touch-events: none;
}

body {
    overflow: visible;
    pointer-events: all;
    touch-events: auto;
}

【讨论】:

  • 我试过只是溢出:隐藏,它可以在我的智能手机上工作,但不能在我的 ipad 上......:/
  • 检查@media 条件是否适用于您的ipad!它的屏幕宽度可能更大,并且 css 不适用。
  • 我已经检查过了...这不是问题
  • 你试过触摸事件吗?我之前已经更新了我的答案。
  • 发布指向您页面的链接,或者将其全部内容放在一个 sn-p 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
  • 2015-08-13
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2014-06-09
相关资源
最近更新 更多