滚动监听

滚动监听(Scrollspy)插件,即自动更新导航插件,会根据滚动条的位置自动更新对应的导航目标。其基本的实现是随着您的滚动,基于滚动条的位置向导航栏添加 .active class

如果您想要单独引用该插件的功能,那么您需要引用 scrollspy.js。或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstrap.min.js。

向顶部导航添加滚动监听行为:

  • 通过data属性,想body添加属性, date-target为带有bootstrap.nav组件的父元素的id
<body data-spy="scroll" data-target="#myHeader">
  • 通过JS
$('body').scrollspy({ target: '.navbar-example' })

导航栏的html结构:

<header id="myHeader" >
  <div class="container">
    <div class="row">
      <div class="col-sm-2 col-xs-4 col-xs-offset-1 col-lg-offset-0 logo">
      </div>
      <nav class="navbar navbar-default navbar-static" role="navigation">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse"
                    data-target="#example-navbar-collapse">
              <span class="sr-only">切换导航</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#"></a>
          </div>
          <div class="collapse navbar-collapse" id="example-navbar-collapse">
            <ul class="nav navbar-nav navbar-right">
              <li class="active"><a href="#myCarousel">HOME</a></li>
              <li><a href="#about-PE">关于品意<span class="visible-xs-inline visible-lg-inline">丨ABOUT PE-IDEA</span></a>
              </li>
              <li><a href="#case">案例展示<span class="visible-xs-inline visible-lg-inline">丨CASE Show</span></a></li>
              <li><a href="#joinUs">加入我们<span class="visible-xs-inline visible-lg-inline">丨Join US</span></a></li>
              <li><a href="#contactUs">联系我们<span class="visible-xs-inline visible-lg-inline">丨Contact US</span></a></li>
            </ul>
          </div>
        </div>
      </nav>
    </div>
  </div>
</header>

点击导航页面会跳转到页面的具有相应ID的元素位置,可以为这一个过程添加一个小动画,让滚动更加平缓:

// 点击导航定位到锚点的动画效果
  $("#example-navbar-collapse").find('a').click(function () {
    $body.animate({
      scrollTop: $($(this).attr("href")).offset().top + "px"
    }, {
      duration: 500,
      easing: "swing"
    });
    return false;
  });

Bootstrap 附加导航(Affix)插件插件允许某个

固定在页面的某个位置。您也可以在打开或关闭使用该插件之间进行切换。一个常见的例子是社交图标。它们将在某个位置开始,但当页面点击某个标记,该
会锁定在某个位置,不会随着页面其他部分一起滚动。

更多看这里

自己用JS实现也很容易:

// 导航滚动
  $(document).scroll(function () {
    var $carousel1Height = $myCarousel1.height();
    if ($(this).scrollTop() > $carousel1Height) {
      $myHeader.css({
        'position': 'fixed',
        'top': 0
      });
    }
    else {
      $myHeader.css({
        'position': 'absolute',
        'top': $carousel1Height
      })
    }
  });
  $(window).resize(function () {
    $(document).triggerHandler('scroll')
  });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值