Javascript jQuery goToByScroll偏移量

Javascript jQuery goToByScroll偏移量,javascript,jquery,scroll,offset,Javascript,Jquery,Scroll,Offset,我使用的是goToByScroll脚本,我需要它忽略页面的第一个40px,因为我有一个固定的导航,导致所有位置的40px都太低 这是我的密码: <script> function goToByScroll(id){ $('html,body').animate({scrollTop: $("#"+id).offset().top},'500'); } </script> 函数goToByScroll(id){ $('html,body').animate

我使用的是goToByScroll脚本,我需要它忽略页面的第一个40px,因为我有一个固定的导航,导致所有位置的40px都太低

这是我的密码:

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

函数goToByScroll(id){
$('html,body').animate({scrollTop:$(“#”+id).offset().top},'500');
}

有什么解决方案吗?

在计算偏移量时,只包括40个像素

 $('html, body').stop().animate({ scrollTop: 40 }, 500);
$('html,body').animate({scrollTop: $("#"+id).offset().top - 40},'500');
或者像这样的

$('html,body').animate({scrollTop: $("#"+id).offset().top - $("#nav").height() },'500');
尽管@Praveen的答案是错误的,但他在里面放了一个漂亮的
.stop()
,以防止多次发射相互干扰。在这里,一切都在一起

<script>
  // assuming `#nav` identifies your navigation element...
  function goToByScroll(id){
      $('html,body').stop().animate({scrollTop: $("#"+id).offset().top - $("#nav").height() },'500');
  }
</script>

//假设`#nav`标识您的导航元素。。。
函数goToByScroll(id){
$('html,body').stop().animate({scrollTop:$(“#“+id).offset().top-$(“#nav”).height()},'500');
}

函数goToByScroll(id){
$('html,body').animate({scrollTop:$(“#”+id).offset().top+40},'500');
}

为什么
'html,body'
而不仅仅是
'body'
?应该是
-40
将其向下移动一点,
+40
将其向上移动一点,因此div会因导航而变得更加模糊,我想这取决于您认为“40px太低”的意思,OP的措辞有点模棱两可。你的观点很好-我想我假设导航在顶部,所以内容需要向下移动,但不清楚。
<script> 
  function goToByScroll(id){
    $('html,body').animate({scrollTop: $("#"+id).offset().top + 40},'500');
  }
</script>