是的,您还需要使用 ScrollSpy 插件。您可以通过标记或通过 JS 激活它。假设#scroll-pane成为触发滚动事件的元素并#navbar成为包含 的元素ul.nav,以下应该让它工作:
HTML
<div id="scroll-pane" data-spy="scroll" data-target="#navbar">
JS
$('#scroll-pane').scrollspy({target: '#navbar'});
使用 HTML 或 JS,但不能同时使用。
附加信息
当 ScrollSpy 插件传递一个目标时,比如scrollspy({target: '#navbar'}),这用于构造表单的选择器
target + ' .nav li > a'
在这个例子中,它会给
'#navbar .nav li > a'
了解此选择器创建的规定很重要。
- 原始
target元素必须是包含具有 class 的元素的元素nav。所以.nav可能永远不应该成为你的目标。
- 该
.nav元素必须包含列表项。
- 这些列表项必须具有 a
<a>作为直接子项。
然后,由此选择的<a>元素会被那些以“#”开头的元素过滤data-target掉href。这些href's 依次用于选择 ScrollSpy 插件附加到的元素中包含的元素。选择的偏移量被存储,当发生滚动时,将当前滚动偏移量与存储的值进行比较,<a>用 class 更新相应的元素active。
希望这个总结可以帮助更好地理解在尝试实现插件时可能会遇到什么问题,而无需深入研究代码。