смещение jQuery goToByScroll - PullRequest
       10

смещение jQuery goToByScroll

1 голос
/ 12 августа 2011

Я использую скрипт goToByScroll, и мне нужно, чтобы он игнорировал первые 40 пикселей моей страницы, потому что у меня фиксированная навигация, в результате чего все позиции были на 40 пикселей ниже.

Вот мой код:

<script> 
  function goToByScroll(id){
  $('html,body').animate({scrollTop: $("#"+id).offset().top},'500');
  }
</script>

Какие-нибудь решения?

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Просто включите 40 пикселей при расчете смещения ...

$('html,body').animate({scrollTop: $("#"+id).offset().top - 40},'500');

Или, может быть, что-то вроде этого ...

$('html,body').animate({scrollTop: $("#"+id).offset().top - $("#nav").height() },'500');

И хотя ответ @ Правина неверен,добавляет туда .stop(), чтобы множественные выстрелы не мешали друг другу.Здесь это все вместе ...

<script>
  // assuming `#nav` identifies your navigation element...
  function goToByScroll(id){
      $('html,body').stop().animate({scrollTop: $("#"+id).offset().top - $("#nav").height() },'500');
  }
</script>
0 голосов
/ 12 августа 2011
<script> 
  function goToByScroll(id){
    $('html,body').animate({scrollTop: $("#"+id).offset().top + 40},'500');
  }
</script>
0 голосов
/ 12 августа 2011
 $('html, body').stop().animate({ scrollTop: 40 }, 500);
...