2016-06-24 3 views
0

Я интегрировал гладкую прокрутку на якорь на свою страницу. Он отлично работает с кодом:Ссылка на Якорь на той же странице минус несколько пикселей

$(function() { 
     $('a[href*="#"]:not([href="#"])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
      var target = $(this.hash); 
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html, body').animate({ 
       scrollTop: target.offset().top 
      }, 1000); 
      return false; 
      } 
     } 
     }); 
    }); 

Теперь, когда я нажимаю ссылку, она прокручивается до этой позиции. Но так как я получил фиксированную строку в верхней части (высота: 100 пикселей), она немного перекрывает содержимое. Могу ли я это исправить? как, скажем, в коде: выделите этот якорь минус 100px ... я думал, что он может работать с

scrollTop: target.offset(-100).top 

является то, что правильно?

+1

'scrollTop: target.offset(). Top - 100'? – eisbehr

+0

О, спасибо! Я попробовал это, но забыл пространство между - и 100 ... Глупо мне. <Спасибо! –

+0

Добро пожаловать. Я сделал здесь ответ. Возможно, отметим это как решение. ;) – eisbehr

ответ

1

jQuery's offset - это функция, которая просто дает вам смещение элементов. Это не означает, что вы сами меняете смещение. Просто вычтите 100px впоследствии.

scrollTop: target.offset().top - 100 
Смежные вопросы