Javascript jQuery goToByScroll偏移量
我使用的是goToByScroll脚本,我需要它忽略页面的第一个40px,因为我有一个固定的导航,导致所有位置的40px都太低 这是我的密码: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
<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>