Source

Сцроллспи

Аутоматски ажурирајте Боотстрап навигацију или компоненте листе групе на основу положаја померања да бисте назначили која је веза тренутно активна у оквиру за приказ.

Како то ради

Сцроллспи има неколико захтева за правилно функционисање:

  • Ако градите наш ЈаваСцрипт из извора, он захтеваutil.js .
  • Мора се користити на Боотстрап навигационој компоненти или групи листе .
  • Сцроллспи захтева position: relative;елемент који шпијунирате, обично <body>.
  • Када шпијунирате друге елементе осим <body>, обавезно имате heightсет и overflow-y: scroll;примењен.
  • Сидра ( <a>) су обавезна и морају показивати на елемент са тим id.

Када се успешно примени, ваша навигација или група листа ће се ажурирати у складу са тим, премештајући .activeкласу са једне ставке на другу на основу њихових повезаних циљева.

Пример у навигационој траци

Померајте област испод траке за навигацију и гледајте како се активна класа мења. Падајуће ставке ће такође бити истакнуте.

@дебео

Оглас хеланке кеитар, брунцх ид арт парти долор лаборе. Виле ир еним ло-фи пре него што су распродали куи. Тумблр права на бицикл од фарме до стола. Аним кеффииех царлес кардиган. Фото кабина Велита сеитана мцсвеенеија 3 волф моон ируре. Цосби џемпер ломо јеан шортс, Виллиамсбург хоодие миним куи за које вероватно нисте чули и кардиган труст фонд цулпа биодиесел вес андерсон аестхетиц. Нихил тетовирани акузамус, цред иронија биодизел кеффииех артисан улламцо цонсекуат.

@мдо

Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.

one

Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.

two

In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.

three

Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

Кеитар твее блог, цулпа мессенгер баг марфа вхатевер делецтус фоод труцк. Сапиенте синтх ид аццептнда. Лоцаворе сед хелветица клише иронија, тхундерцатс за које вероватно нисте чули као последица ло-фи фап аликуипа дуксерица без глутена. Лаборе елит плацеат пре него што су распродати, Терри Рицхардсон проидент бранч несциунт куис цосби џемпер париатур кеффииех у хелветица артисан. Кардиган занатско пиво сеитан реадимаде велит. ВХС цхамбраи лаборис темпор вениам. Аним моллит миним цоммодо улламцо тхундерцатс.

<nav id="navbar-example2" class="navbar navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <ul class="nav nav-pills">
    <li class="nav-item">
      <a class="nav-link" href="#fat">@fat</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#mdo">@mdo</a>
    </li>
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
      <div class="dropdown-menu">
        <a class="dropdown-item" href="#one">one</a>
        <a class="dropdown-item" href="#two">two</a>
        <div role="separator" class="dropdown-divider"></div>
        <a class="dropdown-item" href="#three">three</a>
      </div>
    </li>
  </ul>
</nav>
<div data-spy="scroll" data-target="#navbar-example2" data-offset="0">
  <h4 id="fat">@fat</h4>
  <p>...</p>
  <h4 id="mdo">@mdo</h4>
  <p>...</p>
  <h4 id="one">one</h4>
  <p>...</p>
  <h4 id="two">two</h4>
  <p>...</p>
  <h4 id="three">three</h4>
  <p>...</p>
</div>

Пример са угнежђеним нав

Сцроллспи такође ради са угнежђеним .navс. .navАко је угнежђено .active, његови родитељи ће такође бити .active. Померајте област поред навигационе траке и гледајте како се активни разред мења.

Ставка 1

Ек цонсекуат цоммодо адиписицинг екерцитатион ауте екцептионеур оццаецат улламцо дуис аликуа ид магна улламцо еу. До ауте ипсум ипсум улламцо циллум цонсецтетур ут ет ауте цонсецтетур лаборе. Фугиат лаборум инцидидунт темпор еу цонсекуат еним долоре проидент. Куи лаборум до нон екцептионеур нулла магна еиусмод цонсецтетур ин. Аликуа ет аликуа оффициа куис ет инцидидунт волуптате нон аним репрехендерит адиписицинг долоре ут цонсекуат десерунт моллит долоре. Аликуип нулла еним вениам нон фугиат ид цупидатат нулла елит цупидатат цоммодо велит ут еиусмод цупидатат елит долоре.

Ставка 1-1

Амет темпор моллит аликуип париатур екцептионеур цоммодо до еа циллум цоммодо Лорем ет оццаецат елит куи ет. Аликуип лаборе ек ек ессе волуптате оццаецат Лорем улламцо десерунт. Аликуа циллум екцептионеур ируре цонсекуат ид куис еа. Сит проидент улламцо ауте магна париатур ноструд лаборе. Репрехендерит аликуа цоммодо еиусмод аликуип ест до дуис амет проидент магна цонсецтетур цонсекуат еу цоммодо фугиат нон куис. Еним аликуип екерцитатион улламцо адиписицинг волуптате осим миним екерцитатион миним миним цоммодо адиписицинг екерцитатион оффициа ниси адиписицинг. Аним ид дуис куи цонсекуат лаборе адиписицинг синт долор елит циллум аним ет фугиат.

Ставка 1-2

Cillum nisi deserunt magna eiusmod qui eiusmod velit voluptate pariatur laborum sunt enim. Irure laboris mollit consequat incididunt sint et culpa culpa incididunt adipisicing magna magna occaecat. Nulla ipsum cillum eiusmod sint elit excepteur ea labore enim consectetur in labore anim. Proident ullamco ipsum esse elit ut Lorem eiusmod dolor et eiusmod. Anim occaecat nulla in non consequat eiusmod velit incididunt.

Item 2

Quis magna Lorem anim amet ipsum do mollit sit cillum voluptate ex nulla tempor. Laborum consequat non elit enim exercitation cillum aliqua consequat id aliqua. Esse ex consectetur mollit voluptate est in duis laboris ad sit ipsum anim Lorem. Incididunt veniam velit elit elit veniam Lorem aliqua quis ullamco deserunt sit enim elit aliqua esse irure. Laborum nisi sit est tempor laborum mollit labore officia laborum excepteur commodo non commodo dolor excepteur commodo. Ipsum fugiat ex est consectetur ipsum commodo tempor sunt in proident.

Item 3

Quis anim sit do amet fugiat dolor velit sit ea ea do reprehenderit culpa duis. Nostrud aliqua ipsum fugiat minim proident occaecat excepteur aliquip culpa aute tempor reprehenderit. Deserunt tempor mollit elit ex pariatur dolore velit fugiat mollit culpa irure ullamco est ex ullamco excepteur.

Item 3-1

Deserunt quis elit Lorem eiusmod amet enim enim amet minim Lorem proident nostrud. Ea id dolore anim exercitation aute fugiat labore voluptate cillum do laboris labore. Ex velit exercitation nisi enim labore reprehenderit labore nostrud ut ut. Esse officia sunt duis aliquip ullamco tempor eiusmod deserunt irure nostrud irure. Ullamco proident veniam laboris ea consectetur magna sunt ex exercitation aliquip minim enim culpa occaecat exercitation. Est tempor excepteur aliquip laborum consequat do deserunt laborum esse eiusmod irure proident ipsum esse qui.

Item 3-2

Лаборе сит цулпа цоммодо елит адиписицинг сит аликуип елит проидент волуптате миним моллит ноструд ауте репрехендерит до. Моллит екцептионеур еу Лорем ипсум аним цоммодо синт лаборе Лорем ин екерцитатион велит инцидидунт. Оццаецат цонсецтетур ниси ин оццаецат проидент миним еним сунт репрехендерит екерцитатион цупидатат ет до оффициа. Аликуип цонсекуат ад лаборе лаборе моллит ут амет. Сит париатур темпор проидент ин вениам цулпа аликуа екцептионеур елит магна фугиат еиусмод амет оффициа.

<nav id="navbar-example3" class="navbar navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <nav class="nav nav-pills flex-column">
    <a class="nav-link" href="#item-1">Item 1</a>
    <nav class="nav nav-pills flex-column">
      <a class="nav-link ml-3 my-1" href="#item-1-1">Item 1-1</a>
      <a class="nav-link ml-3 my-1" href="#item-1-2">Item 1-2</a>
    </nav>
    <a class="nav-link" href="#item-2">Item 2</a>
    <a class="nav-link" href="#item-3">Item 3</a>
    <nav class="nav nav-pills flex-column">
      <a class="nav-link ml-3 my-1" href="#item-3-1">Item 3-1</a>
      <a class="nav-link ml-3 my-1" href="#item-3-2">Item 3-2</a>
    </nav>
  </nav>
</nav>

<div data-spy="scroll" data-target="#navbar-example3" data-offset="0">
  <h4 id="item-1">Item 1</h4>
  <p>...</p>
  <h5 id="item-1-1">Item 1-1</h5>
  <p>...</p>
  <h5 id="item-1-2">Item 1-2</h5>
  <p>...</p>
  <h4 id="item-2">Item 2</h4>
  <p>...</p>
  <h4 id="item-3">Item 3</h4>
  <p>...</p>
  <h5 id="item-3-1">Item 3-1</h5>
  <p>...</p>
  <h5 id="item-3-2">Item 3-2</h5>
  <p>...</p>
</div>

Пример са лист-групом

Сцроллспи такође ради са .list-groupс. Померите област поред групе листе и гледајте како се активна класа мења.

Ставка 1

Ек цонсекуат цоммодо адиписицинг екерцитатион ауте екцептионеур оццаецат улламцо дуис аликуа ид магна улламцо еу. До ауте ипсум ипсум улламцо циллум цонсецтетур ут ет ауте цонсецтетур лаборе. Фугиат лаборум инцидидунт темпор еу цонсекуат еним долоре проидент. Куи лаборум до нон екцептионеур нулла магна еиусмод цонсецтетур ин. Аликуа ет аликуа оффициа куис ет инцидидунт волуптате нон аним репрехендерит адиписицинг долоре ут цонсекуат десерунт моллит долоре. Аликуип нулла еним вениам нон фугиат ид цупидатат нулла елит цупидатат цоммодо велит ут еиусмод цупидатат елит долоре.

тачка 2

Куис магна Лорем аним амет ипсум до моллит сит циллум волуптате ек нулла темпор. Лаборум цонсекуат нон елит еним екерцитатион циллум аликуа цонсекуат ид аликуа. Ессе ек цонсецтетур моллит волуптате ест ин дуис лаборис ад сит ипсум аним Лорем. Инцидидунт вениам велит елит елит вениам Лорем аликуа куис улламцо десерунт сит еним елит аликуа ессе ируре. Лаборум ниси сит ест темпор лаборум моллит лаборе оффициа лаборум екцептионеур цоммодо нон цоммодо долор екцептионеур цоммодо. Ипсум фугиат ек ест цонсецтетур ипсум цоммодо темпор сунт ин проидент.

тачка 3

Куис аним сит до амет фугиат долор велит сит еа еа до репрехендерит цулпа дуис. Ноструд аликуа ипсум фугиат миним проидент оццаецат екцептионеур аликуип цулпа ауте темпор репрехендерит. Десерунт темпор моллит елит ек париатур долоре велит фугиат моллит цулпа ируре улламцо ест ек улламцо екцептионеур.

тачка 4

Куис аним сит до амет фугиат долор велит сит еа еа до репрехендерит цулпа дуис. Ноструд аликуа ипсум фугиат миним проидент оццаецат екцептионеур аликуип цулпа ауте темпор репрехендерит. Десерунт темпор моллит елит ек париатур долоре велит фугиат моллит цулпа ируре улламцо ест ек улламцо екцептионеур.

<div id="list-example" class="list-group">
  <a class="list-group-item list-group-item-action" href="#list-item-1">Item 1</a>
  <a class="list-group-item list-group-item-action" href="#list-item-2">Item 2</a>
  <a class="list-group-item list-group-item-action" href="#list-item-3">Item 3</a>
  <a class="list-group-item list-group-item-action" href="#list-item-4">Item 4</a>
</div>
<div data-spy="scroll" data-target="#list-example" data-offset="0" class="scrollspy-example">
  <h4 id="list-item-1">Item 1</h4>
  <p>...</p>
  <h4 id="list-item-2">Item 2</h4>
  <p>...</p>
  <h4 id="list-item-3">Item 3</h4>
  <p>...</p>
  <h4 id="list-item-4">Item 4</h4>
  <p>...</p>
</div>

Употреба

Преко атрибута података

Да бисте лако додали понашање скроловања вашој навигацији на горњој траци, додајте data-spy="scroll"елементу који желите да шпијунирате (најчешће би то био <body>). Затим додајте data-targetатрибут са ИД-ом или класом родитељског елемента било које Боотстрап .navкомпоненте.

body {
  position: relative;
}
<body data-spy="scroll" data-target="#navbar-example">
  ...
  <div id="navbar-example">
    <ul class="nav nav-tabs" role="tablist">
      ...
    </ul>
  </div>
  ...
</body>

Преко ЈаваСцрипт-а

Након што додате position: relative;свој ЦСС, позовите сцроллспи преко ЈаваСцрипт-а:

$('body').scrollspy({ target: '#navbar-example' })

Потребни су решиви циљеви ИД-а

Везе за Навбар морају имати разлучиве циљеве ИД-а. На пример, <a href="#home">home</a>мора одговарати нечему у ДОМ-у као што је <div id="home"></div>.

Нециљни :visibleелементи су занемарени

Циљни елементи који нису у :visibleскладу са јКуери -јем биће занемарени и њихове одговарајуће навигационе ставке никада неће бити истакнуте.

Методе

.scrollspy('refresh')

Када користите сцроллспи у комбинацији са додавањем или уклањањем елемената из ДОМ-а, мораћете да позовете метод освежавања на следећи начин:

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

.scrollspy('dispose')

Уништава шпијун за померање елемента.

Опције

Опције се могу пренети преко атрибута података или ЈаваСцрипт-а. За атрибуте података додајте име опције у data-, као у data-offset="".

Име Тип Уобичајено Опис
офсет број 10 Пиксели за померање од врха приликом израчунавања положаја померања.
методом низ ауто Проналази у ком се одељку налази шпијунирани елемент. Одабраће autoнајбољи метод за добијање координата за померање. offsetкористиће јКуери метод помака да добије координате померања. positionкористиће јКуери метод положаја за добијање координата за померање.
циљ низ Одређује елемент за примену додатка Сцроллспи.

Догађаји

Тип догађаја Опис
ацтивате.бс.сцроллспи Овај догађај се покреће на елементу за померање сваки пут када се нова ставка активира од стране сцроллспи-а.
$('[data-spy="scroll"]').on('activate.bs.scrollspy', function () {
  // do something…
})