Bootstrap 3,附加,固定顶部导航栏,切换文本和锚点

时间:2014-04-20 16:11:38

标签: twitter-bootstrap-3 fixed navbar sidebar affix

我在我的页面上:

  • 固定顶部导航栏,高度为74px;
  • 在右栏上贴上侧栏导航;
  • 左栏,有可切换的内容;
<!-- initialization of affix -->
<body data-spy="scroll" data-target="#ds-right-navigation" data-offset="74">

<!-- toggleable content -->
<div class="panel">
<a id="ds-word-link-109401" data-toggle="collapse" data-target="#ds-word-109401" class="h3">1. równy</a>  
<section id="ds-word-109401" class="col-md-12 ds-word-box collapse in" style="height: auto;">
...collapseable content
</section>
</div>
<div class="panel">
... next panel
</div>

我遇到的问题如下:

  • 如果我点击带有锚点的链接,左栏中的内容将隐藏在固定顶部导航栏下(这样,我可能会修复margin-top:-74px; padding-top:74px)
  • 如果我折叠了左栏中的内容,那么使用词缀的侧边栏菜单就会变得狡猾。它仍然认为折叠内容是可见的,因此侧边栏突出显示错误(隐藏/折叠)内容。

1 个答案:

答案 0 :(得分:0)

// scroll to anchor
if(window.location.hash) {
var hash = window.location.hash.replace(/\/$/, "");
if(hash.length){
  var top = $(hash).offset().top;
  //133 = 74 + 74 - 1, where 74 is offset high and -1px for affix
  $('body, html').stop().animate({ scrollTop: $(hash).offset().top -133 }, 500);
}
}

$('a[href^=#]').on('click',function() {
var hash = $(this).attr('href');
if(hash !== '#') {
  // top offset is 74 and - 1px is for affix
  $('body, html').stop().animate({ scrollTop: $(hash).offset().top -73 }, 500);
}
});