Twitter Bootstrap Scrollspy,在离开区域时删除活动

时间:2012-10-18 15:29:27

标签: javascript jquery twitter-bootstrap

我正在使用来自twitter bootstrap的scrollspy,如果它没有触发另一个部分,它会在离开一个部分后保留导航元素。

任何人都知道,一旦它离开所选区域并且没有触发另一个项目,是否有办法清除选择?

谢谢!

2 个答案:

答案 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;
&#13;
&#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;
  }