我正在建立一个单页网站的顶部栏导航链接到页面上的不同部分。我以<body data-spy="scroll" data-offset="50" id="home">的身份使用Scrollspy将其链接起来。这很好用。导航中的每个部分都会突出显示。
问题出在最后一节。因为它是一个很短的部分,并且不会填满整个页面,所以id="contact"永远不会到达,因此导航元素不会突出显示。
我注意到,在bootstrap examples page上,当您到达最后一个元素时,它在到达其id之前被高亮显示-但是id和所有其他部分一样位于该部分的顶部。
我已经查看了自定义的application.js文件,但没有看到任何与scrollspy行为相关的内容。
有没有人能解释一下呢?
发布于 2012-06-05 04:06:43
我只是在寻找这个问题的答案。bootstrap演示页面在执行最后一项时肯定与我的页面做了一些不同的事情。我也查看了application.js,但什么也没看到。最后,我决定将他们的scrollspy.js版本和我的版本进行比较。他们使用的是v2.0.4,而我使用的是v2.0.2。我用新版本替换了我的版本,它就像预期的那样开始工作。
然后我参考了bootstrap changelog,发现v2.0.3是在2012年4月24日发布的。列出的更改之一是“如果您已经到达文档或元素的底部,则始终选择scrollspy中的最后一项”。
所以我猜,自从我下载了bootstrap之后,他们就悄悄地在内部修复了它。你可能也已经弄明白了这一点,但希望它能帮助其他正在寻找同样答案的人。
发布于 2012-10-13 05:40:34
对于某些人来说,这个问题可能是由于怪癖/DOCTYPE问题。如果滚动区域在主体上,那么scrollspy将计算窗口对象的视区高度。如果您使用的是jQuery 1.8.2,并且没有设置正确的DOCTYPE,则视口高度的scrollspy计算将返回导致最后一项始终处于选中状态的总高度。
如果像在http://twitter.github.com/bootstrap/javascript.html上一样切换回jQuery 1.7.2,那么它将再次工作,或者您可以设置正确的DOCTYPE。
下面是关于"notabug“问题的更多信息:http://bugs.jquery.com/ticket/12426
发布于 2012-03-23 23:26:28
只需将data-offset属性增加为更大的值,如500,如下所示:
<body data-spy="scroll" data-offset="500" id="home">bootstrap演示程序运行良好,因为它还偏移了subnav的高度,以及在50px属性上给定的数据偏移。
https://stackoverflow.com/questions/9841246
复制相似问题