8

导航栏和平滑滚动条一样工作,但我无法更改偏移量。我的导航是86px,但无论我改变多少px,它都会指向相同的位置。

$(文档).ready(函数(){$('body').crollspy({target:“.navbar”,偏移量:86});$(“#myNavbar a”).on('单击',函数(事件){if(this.hash!==“”){event.proventDefault();var散列=this.hash;$('html,body').animate({scrollTop:$(hash).offset().top},800,函数(){window.location.hash=散列;});}});});

我直接将信息添加到body标签中,但仍然没有更改。我知道jquery正在工作,因为它可以平滑滚动,并且折叠导航也可以工作。

<body data-spy=“scroll”data-target=“.navbar”data-offset=“86”>

3个答案

重置为默认值
15

我不认为抵消会像你想象的那样。我不确定“滚动到”位置。你必须用衬垫来做。

在这种情况下,偏移是指屏幕顶部和您滚动到的部分之间的距离。换句话说:它所做的就是确定导航条>标签在哪一刻变为活动状态。

5
  • 好的,谢谢你,这很有道理。当您单击导航栏>标签时,有没有其他方法可以代替使用填充来调整页面的结束位置?现在我让容器div给了id,比如home about等。 评论 2016年6月12日16:24
  • 1
    页面滚动到具有相应id的元素,因此您可以添加具有该id的隐藏伪元素,并将其放置在所需位置。 评论 2016年6月12日16:27
  • 如果这回答了您的问题,请标记为已回答;) 评论 2016年6月12日19:10
  • 谢谢你回答了我的问题 评论 2016年6月12日23:50
  • @wietse-de-viries jsfiddle链接不再工作 评论 2020年9月2日12:37

是的,偏移量只是用来确定导航链接何时高亮显示。单击链接时不要放置屏幕。也就是说,滚动部分由您决定。您可以使用一个小JS来这样做:

var偏移=80;$('.navbar lia').click(函数(事件){event.proventDefault();$($(this).attr('href'))[0].srollIntoView();滚动方式(0,-偏移量);});
0

引导程序使用偏移量仅解决间谍问题,而不是滚动问题。这意味着滚动到正确的位置取决于您。

试试这个,它对我很管用:为导航点击添加一个事件处理程序。

var偏移量=86;$('.navbar lia').click(函数(事件){event.proventDefault();$($(this).attr('href'))[0].srollIntoView();滚动方式(0,-偏移量);});

在此处找到:

https://github.com/twitter/bootstrap/issues/3316

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.