Bootstrap
  • [Bootstrap]Bootstrap 教程
  • [Bootstrap]Bootstrap 简介
  • [Bootstrap]Bootstrap 环境安装
  • [Bootstrap]Bootstrap CSS 概览
  • [Bootstrap]Bootstrap 网格系统
  • [Bootstrap]Bootstrap 排版
  • [Bootstrap]Bootstrap 代码
  • [Bootstrap]Bootstrap 表格
  • [Bootstrap]Bootstrap 表单
  • [Bootstrap]Bootstrap 按钮
  • [Bootstrap]Bootstrap 图片
  • [Bootstrap]Bootstrap 辅助类
  • [Bootstrap]Bootstrap 响应式实用工具
  • [Bootstrap]Bootstrap 字体图标(Glyphicons)
  • [Bootstrap]Bootstrap 下拉菜单(Dropdowns)
  • [Bootstrap]Bootstrap 按钮组
  • [Bootstrap]Bootstrap 按钮下拉菜单
  • [Bootstrap]Bootstrap 输入框组
  • [Bootstrap]Bootstrap 导航元素
  • [Bootstrap]Bootstrap 导航栏
  • [Bootstrap]Bootstrap 面包屑导航Breadcrumbs
  • [Bootstrap]Bootstrap 分页
  • [Bootstrap]Bootstrap 标签
  • [Bootstrap]Bootstrap 徽章 Badges
  • [Bootstrap]Bootstrap 超大屏幕 Jumbotron
  • [Bootstrap]Bootstrap 页面标题 Page Header
  • [Bootstrap]Bootstrap 缩略图
  • [Bootstrap]Bootstrap 警告 Alerts
  • [Bootstrap]Bootstrap 进度条
  • [Bootstrap]Bootstrap 多媒体对象(Media Object)
  • [Bootstrap]Bootstrap 列表组
  • [Bootstrap]Bootstrap 面板Panels
  • [Bootstrap]Bootstrap Well
  • [Bootstrap]Bootstrap 插件概览
  • [Bootstrap]Bootstrap 过渡效果 Transition插件
  • [Bootstrap]Bootstrap 模态框 Modal插件
  • [Bootstrap]Bootstrap 下拉菜单(Dropdown)插件
  • [Bootstrap]Bootstrap 滚动监听 Scrollspy 插件
  • [Bootstrap]Bootstrap 标签页 Tab插件
  • [Bootstrap]Bootstrap 提示工具Tooltip插件
  • [Bootstrap]Bootstrap 弹出框 Popover插件
  • [Bootstrap]Bootstrap 警告框 Alert 插件
  • [Bootstrap]Bootstrap 按钮 Button 插件
  • [Bootstrap]Bootstrap 折叠 Collapse 插件
  • [Bootstrap]Bootstrap 轮播 Carousel 插件
  • [Bootstrap]Bootstrap 附加导航 Affix 插件
  • [Bootstrap]Bootstrap UI 编辑器(开发工具)
  • [Bootstrap]Bootstrap HTML编码规范
  • [Bootstrap]Bootstrap CSS编码规范
  • [Bootstrap]Bootstrap Web框架
  • 直达腾讯云服务器
    腾讯云服务器,数据库,短信等热销产品限量秒杀;新购爆款3折起;
    腾讯云数据库MySQL入门机型仅12元/月
    腾讯云云服务器新购特惠,最低2折起,1核1G3年仅794.73元,即0.73元/日。
    腾讯云国际顶级CA机构SSL证书8.8折,云解析买一年最高送半年!
    腾讯云为数百万企业和开发者提供安全、稳定的云服务器、云数据库、CDN等云服务
    腾讯云服务器安全可靠高性能,多种配置供您选择
    腾讯云数据库性能卓越稳定可靠,为您解决数据库运维难题
    阿里云服务器入口
    180天免费用腾讯云服务器马上领取
    您当前位置:狗鱼MySQL教程 >> HTML >> Bootstrap >> Bootstrap 滚动监听 Scrollspy 插件
    Bootstrap 滚动监听(Scrollspy)插件
    更新日期: 2017年07月25日 来源: 本站原创 作者: 佚名 阅读:
    上一篇Bootstrap 下拉菜单(Dropdown)插件 下一篇:Bootstrap 标签页 Tab插件

    bootstrap 滚动监听(Scrollspy)插件

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

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

    用法

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

    • 通过 data 属性:向您想要监听的元素(通常是 body)添加 data-spy="scroll"。然后添加带有 Bootstrap .nav 组件的父元素的 ID 或 class 的属性 data-target。为了它能正常工作,您必须确保页面主体中有匹配您所要监听链接的 ID 的元素存在。
      <body data-spy="scroll" data-target=".navbar-example">
      ...
      <div class="navbar-example">
      	<ul class="nav nav-tabs">
      		...
      	</ul>
      </div>
      ...
      </body>
    • 通过 javascript:您可以通过 javaScript 调用滚动监听,选取要监听的元素,然后调用 .scrollspy() 函数:
      $('body').scrollspy({ target: '.navbar-example' })

    实例

    下面的实例演示了通过 data 属性使用滚动监听(Scrollspy)插件:

    实例

    <nav id="navbar-example" class="navbar navbar-default navbar-static" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
    <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-js-navbar-scrollspy">
    <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 bs-js-navbar-scrollspy">
    <ul class="nav navbar-nav">
    <li><a href="#ios">iOS</a></li>
    <li><a href="#svn">SVN</a></li>
    <li class="dropdown">
    <a href="#" id="navbarDrop1" class="dropdown-toggle" data-toggle="dropdown">Java <b class="caret"></b> </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="navbarDrop1">
    <li><a href="#jmeter" tabindex="-1">jmeter</a></li>
    <li><a href="#ejb" tabindex="-1">ejb</a></li>
    <li class="divider"></li>
    <li><a href="#spring" tabindex="-1">spring</a></li>
    </ul>
    </li>
    </ul>
    </div>
    </div>
    </nav>
    <div data-spy="scroll" data-target="#navbar-example" data-offset="0" style="height:200px;overflow:auto; position: relative;">
    <h4 id="ios">iOS</h4>
    <p>iOS 是一个由苹果公司开发和发布的手机操作系统。最初是于 2007 年首次发布 iPhone、iPod Touch
    和 Apple TV。iOS 派生自 OS X,它们共享 Darwin 基础。OS X 操作系统是用在苹果电脑上,
    iOS 是苹果的移动版本。
    </p>
    <h4 id="svn">SVN</h4>
    <p>Apache Subversion,通常缩写为 SVN,是一款开源的版本控制系统软件
    。Subversion 由 CollabNet 公司在 2000 年创建。但是现在它已经发展为 Apache Software Foundation 的一个项目
    ,因此拥有丰富的开发人员和用户社区。
    </p>
    <h4 id="jmeter">jMeter</h4>
    <p>jMeter 是一款开源的测试软件。它是 100% 纯 Java 应用程序,用于负载和性能测试。 </p>
    <h4 id="ejb">EJB</h4>
    <p>Enterprise Java Beans(EJB)是一个创建高度可扩展性和强大企业级应用程序的开发架构,
    部署在兼容应用程序服务器(比如 JBOSS、Web Logic 等)的 J2EE 上。
    </p>
    <h4 id="spring">Spring</h4>
    <p>Spring 框架是一个开源的 Java 平台,为快速开发功能强大的 Java 应用程序提供了完备的基础设施支持。 </p>
    <p>Spring 框架最初是由 Rod Johnson 编写的,在 2003 年 6 月首次发布于 Apache 2.0 许可证下。 </p>
    </div>

     

    结果如下所示:

    Bootstrap 滚动监听 Scrollspy 插件

    选项

    通过 data 属性或 JavaScript 来传递。下表列出了这些选项:

    选项名称 类型/默认值 Data 属性名称 描述
    offset number
    默认值:10
    data-offset 当计算滚动位置时,距离顶部的偏移像素。

    方法

    .scrollspy('refresh'):当通过 JavaScript 调用 scrollspy 方法时,您需要调用 .refresh 方法来更新 DOM。这在 DOM 的任意元素发生变更(即,您添加或移除了某些元素)时非常有用。下面是使用该方法的语法。

     

    $('[data-spy="scroll"]').each(function () {
      var $spy = $(this).scrollspy('refresh')
    })

    实例

    下面的实例演示了 .scrollspy('refresh') 方法的用法:

    实例

    <nav id="myScrollspy" class="navbar navbar-default navbar-static" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
    <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-js-navbar-scrollspy">
    <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 bs-js-navbar-scrollspy">
    <ul class="nav navbar-nav">
    <li class="active"><a href="#ios">iOS</a></li>
    <li><a href="#svn">SVN</a></li>
    <li class="dropdown"> <a href="#" id="navbarDrop1" class="dropdown-toggle" data-toggle="dropdown">Java <b class="caret"></b> </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="navbarDrop1">
    <li><a href="#jmeter" tabindex="-1">jmeter</a></li>
    <li><a href="#ejb" tabindex="-1">ejb</a></li>
    <li class="divider"></li>
    <li><a href="#spring" tabindex="-1">spring</a></li>
    </ul>
    </li>
    </ul>
    </div>
    </div>
    </nav>
    <div data-spy="scroll" data-target="#myScrollspy" data-offset="0" style="height:200px;overflow:auto; position: relative;">
    <div class="section">
    <h4 id="ios">iOS<small><a href="#" onclick="removeSection(this);"> &times; 删除该部分</a></small> </h4>
    <p>iOS 是一个由苹果公司开发和发布的手机操作系统。最初是于 2007 年首次发布 iPhone、iPod Touch 和 Apple TV。
    iOS 派生自 OS X,它们共享 Darwin 基础。OS X 操作系统是用在苹果电脑上,
    iOS 是苹果的移动版本。
    </p>
    </div>
    <div class="section">
    <h4 id="svn">SVN<small></small></h4>
    <p>Apache Subversion,通常缩写为 SVN,是一款开源的版本控制系统软件。Subversion 由 CollabNet 公司在 2000 年创建。
    但是现在它已经发展为 Apache Software Foundation 的一个项目,因此拥有丰富的开发人员和用户社区。
    </p> </div>
    <div class="section"> <h4 id="jmeter">jMeter<small>
    <a href="#" onclick="removeSection(this);"> &times; 删除该部分</a></small> </h4>
    <p>jMeter 是一款开源的测试软件。它是 100% 纯 Java 应用程序,用于负载和性能测试。</p> </div>
    <div class="section"> <h4 id="ejb">EJB</h4>
    <p>Enterprise Java Beans(EJB)是一个创建高度可扩展性和强大企业级应用程序的开发架构,
    部署在兼容应用程序服务器(比如 JBOSS、Web Logic 等)的 J2EE 上。
    </p> </div>
    <div class="section"> <h4 id="spring">Spring</h4>
    <p>Spring 框架是一个开源的 Java 平台,为快速开发功能强大的 Java 应用程序提供了完备的基础设施支持。</p>
    <p>Spring 框架最初是由 Rod Johnson 编写的,在 2003 年 6 月首次发布于 Apache 2.0 许可证下。</p> </div>
    </div>
    <script> $(function(){
    removeSection = function(e) {
    $(e).parents(".section").remove();
    $('[data-spy="scroll"]').each(function () {
    var $spy = $(this).scrollspy('refresh') });
    }
    $("#myScrollspy").scrollspy(); });

    </script>

     

    结果如下所示:

    Bootstrap 滚动监听 Scrollspy 插件

    事件

    下表列出了滚动监听中要用到事件。这些事件可在函数中当钩子使用。

    事件 描述 实例
    activate.bs.scrollspy 每当一个新项目被滚动监听激活时,触发该事件。
    $('#myScrollspy').on('activate.bs.scrollspy', function () {
      // 执行一些动作...
    })

    实例

    下面的实例演示了 activate.bs.scrollspy 事件的用法:

    实例

    <nav id="myScrollspy" class="navbar navbar-default navbar-static" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
    <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-js-navbar-scrollspy">
    <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 bs-js-navbar-scrollspy">
    <ul class="nav navbar-nav">
    <li class="active"><a href="#ios">iOS</a></li>
    <li><a href="#svn">SVN</a></li>
    <li class="dropdown"> <a href="#" id="navbarDrop1" class="dropdown-toggle" data-toggle="dropdown"> Java <b class="caret"></b> </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="navbarDrop1">
    <li><a href="#jmeter" tabindex="-1">jmeter</a></li>
    <li><a href="#ejb" tabindex="-1">ejb</a></li>
    <li class="divider"></li>
    <li><a href="#spring" tabindex="-1">spring</a></li>
    </ul>
    </li>
    </ul>
    </div>
    </div>
    </nav>
    <div data-spy="scroll" data-target="#myScrollspy" data-offset="0" style="height:200px;overflow:auto; position: relative;">
    <div class="section">
    <h4 id="ios">iOS<small>
    <a href="#" onclick="removeSection(this);"> &times; 删除该部分</a></small>
    </h4>
    <p>iOS 是一个由苹果公司开发和发布的手机操作系统。最初是于 2007 年首次发布 iPhone、iPod Touch
    和 Apple TV。iOS 派生自 OS X,它们共享 Darwin 基础。OS X 操作系统是用在苹果电脑上,
    iOS 是苹果的移动版本。
    </p>
    </div>
    <div class="section">
    <h4 id="svn">SVN<small></small></h4>
    <p>Apache Subversion,通常缩写为 SVN,是一款开源的版本控制系统软件。
    Subversion 由 CollabNet 公司在 2000 年创建。但是现在它已经发展为 Apache Software Foundation 的一个项目,
    因此拥有丰富的开发人员和用户社区。
    </p> </div>
    <div class="section">
    <h4 id="jmeter">jMeter<small><a href="#" onclick="removeSection(this);"> &times; 删除该部分</a></small> </h4>
    <p>jMeter 是一款开源的测试软件。它是 100% 纯 Java 应用程序,用于负载和性能测试。</p> </div>
    <div class="section"> <h4 id="ejb">EJB</h4>
    <p>Enterprise Java Beans(EJB)是一个创建高度可扩展性和强大企业级应用程序的开发架构,部署在兼容应用程序服务器
    (比如 JBOSS、Web Logic 等)的 J2EE 上。
    </p> </div>
    <div class="section">
    <h4 id="spring">Spring</h4>
    <p>Spring 框架是一个开源的 Java 平台,为快速开发功能强大的 Java 应用程序提供了完备的基础设施支持。</p>
    <p>Spring 框架最初是由 Rod Johnson 编写的,在 2003 年 6 月首次发布于 Apache 2.0 许可证下。</p> </div>
    </div> <span id="activeitem" style="color:red;"></span>
    <script> $(function(){
    removeSection = function(e) {
    $(e).parents(".section").remove();
    $('[data-spy="scroll"]').each(function () {
    var $spy = $(this).scrollspy('refresh') }); }
    $("#myScrollspy").scrollspy();
    $('#myScrollspy').on('activate.bs.scrollspy', function () {
    var currentItem = $(".nav li.active > a").text();
    $("#activeitem").html("目前您正在查看 - " + currentItem);
    })
    });

    </script>

     

    结果如下所示:

    Bootstrap 滚动监听 Scrollspy 插件
     

    更多实例

    创建水平滚动监听

    以下实例演示了如何创建水平滚动监听:

    实例

    <!-- The navbar: used to jump to a section in the scrollable area -->
    <nav class="navbar navbar-inverse navbar-fixed-top">
    ...
      <ul class="nav navbar-nav">
        <li><a href="#section1">Section 1</a></li>
        ...
    </nav>

    <!-- The scrollable area -->
    <div data-spy="scroll" data-target=".navbar" data-offset="12">
      <!-- Section 1 -->
      <div id="section1">
        <h1>Section 1</h1>
        <p>Try to scroll this page and look at the navigation bar while scrolling!</p>
      </div>
      ...
    </div>

     

    如何创建垂直滚动监听

    以下实例演示了如何创建垂直滚动监听:

    实例

    <body data-spy="scroll" data-target="#myScrollspy" data-offset="20">

      <div class="container">
        <div class="row">
          <nav class="col-sm-3" id="myScrollspy">
            <ul class="nav nav-pills nav-stacked">
              <li><a href="#section1">Section 1</a></li>
              ...
            </ul>
          </nav>
          <div class="col-sm-9">
            <div id="section1"> 
              <h1>Section 1</h1>
              <p>Try to scroll this page and look at the navigation list while scrolling!</p>
            </div> 
            ...
          </div>
        </div>
      </div>

    </body>

     
     

    感觉本站内容不错,读后有收获?

    我要小额赞助,鼓励提供更好的内容教程

    上一篇Bootstrap 下拉菜单(Dropdown)插件 下一篇:Bootstrap 标签页 Tab插件
    Copyright 2013-2017 Powered by 狗鱼MySQL教程,All Rights Reserved.
    广州相如计算机科技有限有限公司 版权所有 粤ICP备08130661号-4
    售前咨询:020-38667011 手机:13711588918