Как применить смещение к # ссылке на другой странице - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть веб-сайт, который на 80% состоит из index.html плюс несколько небольших страниц. Index.html состоит из нескольких разделов. Однако навигация имеет положение: фиксированное и высота - скажем, - 100 пикселей, поэтому ссылки вроде

<a href="#section">

требуется смещение 100 пикселей. Я добиваюсь этого через jQuery (я оставлю все ifs для определенных разделов):

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

Проблема в том, что когда я перехожу к index.html с подстраниц, этот трюк не сработает, поэтому я не должен использовать эту функцию на подстраницах и просто "разрешить по умолчанию".

Есть ли способ перейти к # разделу другого HTML-документа с правильным смещением (не может быть жестко закодировано)?

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете достичь этого без Javascript.

Предполагается, что в index.html все цели имеют секцию класса. С этим фрагментом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...