jQuery goToByScroll offset

jQuery goToByScroll offset

本文关键字:offset goToByScroll jQuery      更新时间:2023-09-26

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

下面是我的代码:

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

解决方案吗?

计算偏移量时只需包含40像素…

$('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>
 $('html, body').stop().animate({ scrollTop: 40 }, 500);
<script> 
  function goToByScroll(id){
    $('html,body').animate({scrollTop: $("#"+id).offset().top + 40},'500');
  }
</script>