3

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

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

谢谢!

4

2 回答 2

1

由于更新引导程序版本时的长期后果,我不太热衷于修补 twitter 引导程序。我最终添加了隐藏的导航元素来表示我不希望 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>

于 2015-06-06T22:45:50.103 回答
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;
  }
于 2014-09-09T19:47:38.780 回答