>  기사  >  웹 프론트엔드  >  부트스트랩 스크롤 모니터링(Scrollspy) 플러그인_javascript 기술에 대한 자세한 설명

부트스트랩 스크롤 모니터링(Scrollspy) 플러그인_javascript 기술에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 15:03:382109검색

자동 업데이트 탐색 플러그인인 Scrollspy 플러그인은 스크롤 막대의 위치에 따라 해당 탐색 대상을 자동으로 업데이트합니다. 기본 구현은 스크롤할 때 스크롤 막대의 위치를 ​​기반으로 탐색 막대에 .active 클래스를 추가하는 것입니다.

이 플러그인의 기능을 별도로 참조하려면 scrollspy.js를 참조해야 합니다. 또는 Bootstrap 플러그인 개요 장에서 언급한 대로 bootstrap.js 또는 bootstrap.min.js의 축소된 버전을 참조할 수 있습니다.

1. 사용법
상단 탐색에 스크롤 듣기 동작을 추가할 수 있습니다.

1. 데이터 속성을 통해: 모니터링하려는 요소(일반적으로 본문)에 data-spy="scroll"을 추가합니다. 그런 다음 Bootstrap .nav 구성 요소의 상위 요소 ID 또는 클래스를 사용하여 data-target 속성을 추가합니다. 이것이 작동하려면 수신하려는 링크의 ID와 일치하는 요소가 페이지 본문에 존재하는지 확인해야 합니다.

<body data-spy="scroll" data-target=".navbar-example">
 ...
 <div class="navbar-example">
  <ul class="nav nav-tabs">
   ...
  </ul>
 </div>
 ...
</body>

2. JavaScript를 통해: JavaScript를 통해 스크롤 모니터링을 호출하고, 모니터링하려는 요소를 선택한 후 .scrollspy() 함수를 호출할 수 있습니다.
$('body').scrollspy({ 대상: '.navbar-example' })
2. 스크롤 모니터링
스크롤 청취 플러그인은 스크롤 막대의 위치에 따라 탐색 항목을 자동으로 업데이트하고 탐색 항목 강조 표시를 표시하는 데 사용됩니다.

//基本实例
<nav id="nav" class="navbar navbar-default">
  <a href="#" class="navbar-brand">Web 开发</a>
  <ul class="nav navbar-nav">
    <li>
      <a href="#html5">HTML5</a>
    </li>
    <li>
      <a href="#bootstrap">Bootstrap</a>
    </li>
    <li class="dropdown">
      <a href="#" data-toggle="dropdown">JavaScript <span class="caret"></span></a>
      <ul class="dropdown-menu">
        <li>
          <a href="#jquery">jQuery</a>
        </li>
        <li>
          <a href="#yui">Yui</a>
        </li>
        <li>
          <a href="#extjs">Extjs</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>

<div data-offset="0" data-target="#nav" data-spy="scroll" style="height: 200px; overflow: auto; position: relative;padding: 0 10px;">
  <h4 id="html5">HTML5</h4>
  <p>
    标准通用标记语言下的一个应用 HTML 标准自 1999 年 12 月发布的 HTML4.01后,后继的 HTML5 和其它标准被束之高阁,为了推动 Web 标准化运动的发展,一些公司联合起来,成立了一个叫做 Web Hypertext Application Technology Working Group(Web 超文本应用技术工作组 -WHATWG) 的组织。WHATWG 致力于 Web 表单和应用程序,而 W3C(World Wide Web Consortium,万维网联盟) 专注于 XHTML2.0。在 2006 年,

    双方决定进行合作,来创建一个新版本的 HTML。
  </p>
  <h4 id="bootstrap">Bootstrap</h4>
  <p>
    Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、 CSS、 JAVASCRIPT 的, 它简洁灵活, 使得 Web 开发更加快捷。 [1]它由 Twitter的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS/HTML 框架。Bootstrap提供了优雅的 HTML 和 CSS 规范,它即是由动态 CSS 语言 Less 写成。Bootstrap 一经推出后颇受欢迎,一直是 GitHub 上的热门开源项目,包括 NASA 的 MSNBC(微软全国广播公司)的 Breaking News 都使用了该项目。[2]国内一些移动开发者较为熟悉的框架,如 WeX5前端开源框架等,也是基于 Bootstrap 源码进行性能优化而来。[3]
  </p>
  <h4 id="jquery">jQuery</h4>
  <p>
    JQuery 是继 prototype 之后又一个优秀的 Javascript 库。 它是轻量级的 js库 ,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+) ,jQuery2.0 及后续版本将不再支持 IE6/7/8 浏览器。jQuery 使用户能更方便地处理 HTML(标准通用标记语言下的一个应用) 、 events、 实现动画效果, 并且方便地为网站提供 AJAX交互。jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 jQuery 能够使用户的 html 页面保持代码和 html 内容分离, 也就是说, 不用再在 html 里面插入一堆 js 来调用命令了, 只需要定义 id 即可。
  </p>
  <h4 id="yui">Yui</h4>
  <p>
    近几年随着 jQuery、Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野, 可谓应接不暇。 不论是桌面浏览器端还是移动端都涌现出很多优秀的框架,极大丰富了开发素材,也方便了大家的开发。这些框架各有特点,本文对这些框架进行初步的介绍与比较, 希望能够为大家选择框架提供一点帮助, 也为后续详细研究这些框架的抛砖引玉。
  </p>
  <h4 id="extjs">Extjs</h4>
  <p>
    ExtJS 可以用来开发 RIA 也即富客户端的 AJAX 应用,是一个用 javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端 ajax 框架。因此,可以把 ExtJS 用在.Net、Java、Php 等各种开发语言开发的应用中。ExtJs 最开始基于 YUI 技术,由开发人员 JackSlocum 开发,通过参考 JavaSwing 等机制来组织可视化组件,无论从 UI 界面上 CSS 样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript 客户端技术的精品。
  </p>
</div>

여기에는 아래와 같이 두 가지 중요한 속성이 있습니다.


PS: 메뉴 및 간단한 상황에서는 데이터 타겟 설정 없이 스크롤 모니터링 강조 표시를 안정적으로 구현할 수 있습니다. 하지만 네비게이션이 여러 개인 경우, 그 중 하나를 연결하지 않으면 오류가 발생하므로 일반적으로 추가해야 합니다.

JavaScript 스크립팅을 사용하는 경우 data-*를 제거하고 스크립트 속성을 사용하여 오프셋, 스파이 및 대상을 정의할 수 있습니다. 구체적인 방법은 다음과 같습니다.

//使用脚本方式定义属性

$('#content').scrollspy({
  offset : 0,
  target : '#nav',
}); 

스크롤 리스너에는 새 항목으로 전환하는 이벤트도 있습니다.

//내비게이션에 이벤트가 바인딩되어 있습니다

$('#nav').on('activate.bs.scrollspy', function() {
Alert('이 이벤트는 새 항목이 활성화된 후에 발생합니다!');
})
스크롤 리스너에는 컨테이너 DOM을 업데이트하는 메서드도 있습니다.

//HTML 부분

<section class="sec">
  <h4 id="html5">HTML5 <a href="#" onclick="removeSec(this)">删除此项</a></h4>
  <p>
    ...
  </p>
</section>

//콘텐츠를 삭제할 때 탐색 모니터링 위치가 잘못되지 않도록 DOM을 새로 고치세요

function removeSec(e) {
  $(e).parents('.sec').remove();
  $('#content').scrollspy('refresh');
}

참고: 이 방법은 data-* 선언을 사용해야 합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.