【问题标题】:Sticky header overlap content粘性标题重叠内容
【发布时间】:2016-11-30 07:24:40
【问题描述】:

我找到了这个问题的答案,但这对我的情况没有帮助。这是我的site,当我跳转到内容时,标题与粘性标题重叠。

这是我修复它的想法:

  1. 我将从链接中获取#team(例如:https://kieferorthopädie-dietze.de/praxis/#team/

  2. 然后将#team与container进行比较,如果container与link的id相同,我会在body中添加padding-top。

  3. 如果用户向上滚动,body 将移除 padding-top。

希望任何人都可以告诉我如何编写代码来解决此问题。提前致谢!

【问题讨论】:

  • 能否分享一下代码。我无法打开您的网站。您可以使用 SO 代码或 codepen
  • 不清楚你在问什么。请在问题中提供代码示例,而不是发布实时网站链接
  • @Chris 请看看我的网站,我已经更新了链接。
  • @TheHung,我看不到任何菜单

标签: jquery html css menu sticky


【解决方案1】:

您可以在纯 CSS 中执行此操作 - 我自己在 www.cntrl.no/license 上执行(单击索引中的链接之一)

h4::before {
    content: " ";
    display: block;
    height: 7em;
    margin-top: -7em;
    visibility: hidden;
}

当然,那是我使用的h4——当然,你可以用它代替你用来跳转到的任何容器或元素。高度是我的标题栏高度 - 您可能需要稍微调整它。

【讨论】:

  • 当用户点击菜单并跳转到区域而不是固定样式时它应该可以工作。
  • 确实...?我不明白你的意思。你的意思是它应该适用于不同的元素(比如你有一个带有 id 的 div 和另一个带有 id 的标题,等等?)
  • 对不起,也许我没有解释清楚。这里我的意思是:如果用户点击菜单,那么它会跳转该区域。然后,我们将检查该区域是否存在,body 将添加 padding-top 属性,然后将其删除。
  • 是的...?当几行 CSS 可以为您完成时,您为什么要在 javascript 中做如此复杂的事情?这正是上面的代码所做的,尽管它基于h4 是被跳转到的元素。如果您需要滚动到其他元素,只需更改元素即可。
  • 非常感谢,几乎完成了。标题仍然被标题隐藏,请你看看我的网站prntscr.com/ddizm7
【解决方案2】:

我认为您正在寻找一个粘性标题。这是我编写的代码,可以帮助您入门。我假设您将有更多包含内容的部分。

$(window).scroll(function() {
  if ($(this).scrollTop() > 1) {
    $('header').addClass("sticky");
  } else {
    $('header').removeClass("sticky");
  }
});
body {
  height: 2000px;
  padding: 0;
  margin: 0;
}

header {
  position: fixed;
  width: 100%;
  background: #ccc;
  padding: 10px;
  color: #fff;
  font-family: 'PT Sans', sans-serif;
  transition: all 0.4s ease;
}

a {
  color: #fff;
  text-decoration: none;
}

header.sticky {
  background: #aaa;
}

.content {
  padding-top: 120px;
}

section {
  padding: 100px 0;
}

.container {
  width: 960px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
  <h1><a href="#link">Click Here</a></h1> </header>
<div class="container">
  <section class="content" >
 <p>askld f;a jsd;f jasld jf;la ;jsdlkfj ;asd jf;a jsd;lkf jalk;s df;l ;alk sdjf;lajsd fja;s dllf jalksdjf; jas;ldjf ;laj sd;flj a;lsj dfkl; jasdf jkaj s;df lkaj sd;kfj ak;lsd jf;lka jsd;lfj ;ajs dlkf ajskdjf ajs d;klfj aksldj</p>
   <p>askld f;a jsd;f jasld jf;la ;jsdlkfj ;asd jf;a jsd;lkf jalk;s df;l ;alk sdjf;lajsd fja;s dllf jalksdjf; jas;ldjf ;laj sd;flj a;lsj dfkl; jasdf jkaj s;df lkaj sd;kfj ak;lsd jf;lka jsd;lfj ;ajs dlkf ajskdjf ajs d;klfj aksldj</p>
   <p>askld f;a jsd;f jasld jf;la ;jsdlkfj ;asd jf;a jsd;lkf jalk;s df;l ;alk sdjf;lajsd fja;s dllf jalksdjf; jas;ldjf ;laj sd;flj a;lsj dfkl; jasdf jkaj s;df lkaj sd;kfj ak;lsd jf;lka jsd;lfj ;ajs dlkf ajskdjf ajs d;klfj aksldj</p>
   <p>askld f;a jsd;f jasld jf;la ;jsdlkfj ;asd jf;a jsd;lkf jalk;s df;l ;alk sdjf;lajsd fja;s dllf jalksdjf; jas;ldjf ;laj sd;flj a;lsj dfkl; jasdf jkaj s;df lkaj sd;kfj ak;lsd jf;lka jsd;lfj ;ajs dlkf ajskdjf ajs d;klfj aksldj</p>
   <p>askld f;a jsd;f jasld jf;la ;jsdlkfj ;asd jf;a jsd;lkf jalk;s df;l ;alk sdjf;lajsd fja;s dllf jalksdjf; jas;ldjf ;laj sd;flj a;lsj dfkl; jasdf jkaj s;df lkaj sd;kfj ak;lsd jf;lka jsd;lfj ;ajs dlkf ajskdjf ajs d;klfj aksldj</p>
  
</section>
<section id="link">
 <img src="http://placehold.it/600x400.jpg" alt="Image" /></section>
</div>

也在codepen上:http://codepen.io/hunzaboy/pen/WoXRRL

【讨论】:

  • 感谢您的代码。但是我已经有一个粘性菜单,我的问题是粘性标题与我的内容重叠。请拍下这张照片prntscr.com/ddiw0x
  • 您是否使用任何插件来制作粘性标题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多