Bootstrap scrollspy仅在第二次单击时获得高度偏移

我用bootstrap 3.2.1创建了一个页面,并在此页面中使用了scrollspy。 在第一次单击菜单时,滚动页面的偏移高度不起作用,但在第二次单击后工作偏移高度。

此代码适用于浏览器! 但是当第一次点击标题2(或标题3或标题4)时,页面应该在标题2(或标题3或标题4)上滚动。

offsetHeight value = 120; 

看现场演示

看到j​​sfiddle演示

这是因为您在向下滚动时将导航栏设置为固定(在y> 90之后)。 因此,您需要在导航栏固定时折扣高度。

您需要一个动态值,基于您的代码,一种方法是使用具有相同参数的函数。 导航栏的高度为30px,因此您需要添加它。

 function offsetHeight() { if ($(window).scrollTop() > 90) { return 120; } else { return 150; } }; 

的jsfiddle