如何将偏移量应用于另一页上的#link

时间:2018-09-06 18:07:56

标签: jquery anchor offset

我有一个网站,基本上是80%index.html以及一些较小的子页面。 Index.html分为几个部分。 但是,导航的位置为:fixed,高度为-例如-100px,因此链接类似

<a href="#section">

需要100像素的偏移量。 我是通过jQuery实现的(我将所有特定部分的if都排除在外):

$("#navigation a").click(function() {
    event.preventDefault();
    var offset = $("#section1").offset().top - 100;
    $(window).scrollTop(offset);
}

问题在于,当我从子页面导航至index.html时,此技巧将不起作用,因此我不能在子页面上使用此功能,而只能“允许默认”。

有没有一种方法可以导航到具有适当偏移量的其他html文档的#section(不能硬编码)?

1 个答案:

答案 0 :(得分:1)

您可以在没有Java脚本的情况下实现这一目标。

假设index.html上所有具有class部分的目标。使用此CSS代码段,固定的导航不会隐藏任何目标。

body {
   padding-top: 60px;
   margin-top: 0px;
}

 #fixed-nav { 
   position:fixed;
   height:50px;
   line-height:50px;
   vertical-align:middle;    
   background:#000;
   top:0;
   left:0;
   right:0;
   color:#FFF;
   padding-left:5px;
}

#fixed-nav a {
  color: white;
  margin-right: 10px;
  text-decoration: none;
}

#sections .section {
  height:400px;
  padding-left:5px;
}

#sections .section:before { 
  display: block; 
  content: " "; 
  margin-top: -60px; 
  height: 60px; 
  visibility: hidden; 
<div id="fixed-nav">
   <a href="#target-1">To target 1</a>
   <a href="#target-2">To target 2</a>
   <a href="#target-3">To target 3</a>
   <a href="#target-4">To target 4</a>
   <a href="#target-5">To target 5</a>
</div>

<div id="sections">
  <div class="section" id="target-1">
    Target 1
  </div>
  <div class="section" id="target-2">
    Target 2
  </div>
  <div class="section" id="target-3">
    Target 3
  </div>
  <div class="section" id="target-4">
    Target 4
  </div>
  <div class="section" id="target-5">
    Target 5
  </div>
</div>