我正在使用来自twitter bootstrap的scrollspy,如果它没有触发另一个部分,它会在离开一个部分后保留导航元素。
任何人都知道,一旦它离开所选区域并且没有触发另一个项目,是否有办法清除选择?
谢谢!
答案 0 :(得分:1)
由于更新bootstrap版本时的长期后果,我并不热衷于修补twitter bootstrap。我最后添加了隐藏的导航元素来表示我不想让scrollspy突出显示导航元素的区域。
<ul class="nav navbar-nav">
<li class="hidden">
<%= link_to "Top", '#top' %>
</li>
<li>
<%= link_to "Features", '#features' %>
</li>
<li>
<%= link_to "Gift Collections", '#gift-collections' %>
</li>
<li>
<%= link_to "Pricing", '#pricing' %>
</li>
</ul>
&#13;
答案 1 :(得分:0)
我一直在寻找相同的东西并找到了这个:https://gist.github.com/kirov/9482666
以下是您需要添加的更改:
if (scrollTop <= offsets[0]) {
this.deactivate();
return;
}
if (scrollTop >= maxScroll) {
return activeTarget != (i = targets.last()[0]) && this.activate(i)
}
if (activeTarget && scrollTop <= offsets[0]) {
return activeTarget != (i = targets[0]) && this.activate(i)
}
ScrollSpy.prototype.deactivate = function (target) {
$(this.selector)
.parent('.active')
.removeClass('active');
this.activeTarget = null;
}