JavaScript

Оживите компоненты Bootstrap — теперь с 13 собственными jQuery-плагинами.

Отдельные или собранные плагины

Плагины можно подключать по отдельности (некоторые требуют зависимости), либо все сразу. Файлы bootstrap.js и bootstrap.min.js содержат все плагины в одном файле.

Атрибуты данных

Вы можете использовать все плагины Bootstrap только через разметку, не написав ни одной строки JavaScript. Это основной API Bootstrap, и его стоит рассматривать в первую очередь при использовании плагинов.

Однако в некоторых случаях может понадобиться отключить эту функциональность. Для этого можно отключить API атрибутов данных, отвязав все события с пространством имён 'data-api' на body:

$('body').off('.data-api')

Чтобы отключить только определённый плагин, добавьте его имя в пространство имён вместе с data-api:

$('body').off('.alert.data-api')

Программный API

Также вы можете использовать все плагины Bootstrap через JavaScript API. Все публичные методы — одиночные, цепочечные и возвращают коллекцию, к которой применяются.

$(".btn.danger").button("toggle").addClass("fat")

Все методы принимают необязательный объект опций, строку для вызова определённого метода или ничего (инициализация с поведением по умолчанию):

$("#myModal").modal()                       // initialized with defaults
$("#myModal").modal({ keyboard: false })   // initialized with no keyboard
$("#myModal").modal('show')                // initializes and invokes show immediately

Каждый плагин также предоставляет свой конструктор "Constructor" через свойство Constructor: $.fn.popover.Constructor. Если вы хотите получить экземпляр определённого плагина, извлеките его напрямую из элемента: $('[rel=popover]').data('popover').

Конфликты пространств имён

Иногда может понадобиться использовать плагины Bootstrap вместе с другими UI-фреймворками. В этих случаях могут возникать конфликты пространств имён. Если это произойдёт, вы можете вызвать метод .noConflict у плагина, который вы хотите вернуть к исходному значению.

var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the bootstrap functionality

События

Bootstrap предоставляет собственные события для большинства уникальных действий плагинов. Обычно они принимают форму бесконечного и прошедшего времени, где бесконечное (например, show) срабатывает в начале события, а прошедшее время (например, shown) срабатывает по завершении действия.

Все бесконечные события предоставляют функциональность preventDefault. Это позволяет остановить выполнение действия перед его началом.

$('#myModal').on('show', function (e) {
    if (!data) return e.preventDefault() // stops modal from being shown
})

О переходах

Для простых эффектов перехода включите bootstrap-transition.js вместе с другими JS-файлами. Если вы используете собранный (или минифицированный) bootstrap.js, не нужно включать этот файл—он уже есть там.

Примеры использования

Несколько примеров использования плагина перехода:

  • Слайдинг или затухание в модальных окнах
  • Затухание вкладок
  • Затухание оповещений
  • Слайдинг панелей карусели

Примеры

Модальные окна — это упрощённые, но гибкие диалоговые окна с минимально необходимым функционалом и умными дефолтными значениями.

Статический пример

Отображаемое модальное окно с заголовком, телом и набором действий в футере.

<div class="modal hide fade">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h3>Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <a href="#" class="btn">Close</a>
    <a href="#" class="btn btn-primary">Save changes</a>
  </div>
</div>

Живой пример

Переключите модальное окно через JavaScript, нажав на кнопку ниже. Оно будет скрываться и появляться сверху страницы.

<!-- Button to trigger modal -->
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

Использование

Через атрибуты данных

Активируйте модальное окно без написания JavaScript. Установите data-toggle="modal" на элемент управления, например на кнопку, вместе с data-target="#foo" или href="#foo" для указания конкретного модального окна для переключения.

<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>

Через JavaScript

Вызовите модальное окно с идентификатором myModal одной строкой JavaScript:

$('#myModal').modal(options)

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-backdrop="".

Имя тип по умолчанию описание
backdrop boolean true Включает элемент modal-backdrop. Кроме того, можно указать static для затемнения, которое не закрывает модальное окно при клике.
keyboard boolean true Закрывает модальное окно при нажатии клавиши Escape
show boolean true Отображает модальное окно при инициализации.
remote path false

Если указана удаленная ссылка, контент будет загружен с помощью метода load jQuery и вставлен в .modal-body. Если вы используете API данных, вы также можете использовать тег href для указания удаленного источника. Пример показан ниже:

<a data-toggle="modal" href="remote.html" data-target="#modal">click me</a>

Методы

.modal(options)

Активирует ваш контент как модальное окно. Принимает необязательный объект опций object.

$('#myModal').modal({
  keyboard: false
})

.modal('toggle')

Вручную переключает модальное окно.

$('#myModal').modal('toggle')

.modal('show')

Вручную открывает модальное окно.

$('#myModal').modal('show')

.modal('hide')

Вручную скрывает модальное окно.

$('#myModal').modal('hide')

События

Класс модального окна Bootstrap предоставляет несколько событий для подключения к функционалу модального окна.

Событие Описание
show Это событие срабатывает сразу после вызова метода show экземпляра.
shown Это событие срабатывает, когда модальное окно становится видимым для пользователя (будет ждать завершения CSS-переходов).
hide Это событие срабатывает сразу после вызова метода hide экземпляра.
hidden Это событие срабатывает, когда модальное окно становится скрытым для пользователя (будет ждать завершения CSS-переходов).
$('#myModal').on('hidden', function () {
  // do something…
})

Пример в навигационной панели

Плагин ScrollSpy предназначен для автоматического обновления целей навигации на основе положения прокрутки. Прокрутите область ниже навигационной панели и посмотрите, как меняется класс активности. Выпадающие подпункты также будут подсвечены.

@fat

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.

@mdo

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.

Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats.


Использование

Через атрибуты данных

Чтобы легко добавить поведение ScrollSpy к вашей навигационной панели, просто добавьте data-spy="scroll" к элементу, который вы хотите отслеживать (обычно это будет body), и data-target=".navbar" для выбора, какую навигацию использовать. Вы будете использовать ScrollSpy с компонентом .nav.

<body data-spy="scroll" data-target=".navbar">...</body>

Через JavaScript

Вызовите ScrollSpy через JavaScript:

$('#navbar').scrollspy()
Внимание! Ссылки навигационной панели должны иметь разрешимые целевые идентификаторы. Например, <a href="#home">home</a> должно соответствовать чему-то в DOM, например <div id="home"></div>.

Методы

.scrollspy('refresh')

При использовании ScrollSpy в сочетании с добавлением или удалением элементов из DOM вам нужно будет вызвать метод refresh так:

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

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-offset="".

Имя тип по умолчанию описание
offset number 10 Пиксели для смещения сверху при расчете положения прокрутки.

События

Событие Описание
activate Это событие срабатывает, когда новый элемент становится активным в ScrollSpy.

Примеры

Добавьте быструю, динамическую функциональность вкладок для перехода через панели локального контента, даже через выпадающие меню.

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.


Использование

Включите переключаемые вкладки через JavaScript (каждая вкладка должна быть активирована индивидуально):

$('#myTab a').click(function (e) {
  e.preventDefault();
  $(this).tab('show');
})

Вы можете активировать отдельные вкладки несколькими способами:

$('#myTab a[href="#profile"]').tab('show'); // Select tab by name
$('#myTab a:first').tab('show'); // Select first tab
$('#myTab a:last').tab('show'); // Select last tab
$('#myTab li:eq(2) a').tab('show'); // Select third tab (0-indexed)

Разметка

Вы можете активировать вкладки или табы без написания JavaScript, просто указав data-toggle="tab" или data-toggle="pill" на элементе. Добавление классов nav и nav-tabs к ul вкладки применит стили Bootstrap для вкладок.

<ul class="nav nav-tabs">
  <li><a href="#home" data-toggle="tab">Home</a></li>
  <li><a href="#profile" data-toggle="tab">Profile</a></li>
  <li><a href="#messages" data-toggle="tab">Messages</a></li>
  <li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>

Методы

$().tab

Активирует элемент вкладки и контейнер контента. Вкладка должна иметь либо data-target, либо href, указывающий на узел контейнера в DOM.

<ul class="nav nav-tabs" id="myTab">
  <li class="active"><a href="#home">Home</a></li>
  <li><a href="#profile">Profile</a></li>
  <li><a href="#messages">Messages</a></li>
  <li><a href="#settings">Settings</a></li>
</ul>

<div class="tab-content">
  <div class="tab-pane active" id="home">...</div>
  <div class="tab-pane" id="profile">...</div>
  <div class="tab-pane" id="messages">...</div>
  <div class="tab-pane" id="settings">...</div>
</div>

<script>
  $(function () {
    $('#myTab a:last').tab('show');
  })
</script>

События

Событие Описание
show Это событие срабатывает при показе вкладки, но до того, как новая вкладка была показана. Используйте event.target и event.relatedTarget, чтобы определить активную вкладку и предыдущую активную вкладку (если она есть) соответственно.
shown Это событие срабатывает после того, как вкладка была показана. Используйте event.target и event.relatedTarget для определения активной вкладки и предыдущей активной вкладки (если она есть) соответственно.
$('a[data-toggle="tab"]').on('shown', function (e) {
  e.target // activated tab
  e.relatedTarget // previous tab
})

Примеры

Вдохновлен плагином jQuery.tipsy, написанным Джейсоном Фреймом; Подсказки — это обновленная версия, которая не использует изображения, использует CSS3 для анимаций и атрибуты данных для локального хранения заголовков.

Из соображений производительности подсказки и всплывающие окна являются необязательными, что означает вы должны инициализировать их самостоятельно.

Наведите курсор на ссылки ниже, чтобы увидеть подсказки:

Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.

Четыре направления

Подсказки в группах ввода

При использовании подсказок и всплывающих окон с группами ввода Bootstrap вам нужно будет установить опцию container (описанную ниже), чтобы избежать нежелательных побочных эффектов.


Использование

Вызовите подсказку через JavaScript:

$('#example').tooltip(options)

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-animation="".

Имя тип по умолчанию описание
animation boolean true применить CSS-переход fade к подсказке
html boolean false Вставьте HTML в подсказку. Если false, метод text jQuery будет использоваться для вставки контента в DOM. Используйте текст, если вы обеспокоены атаками XSS.
placement string | function 'top' как позиционировать подсказку - top | bottom | left | right
selector string false Если предоставлен селектор, объекты подсказки будут делегированы к указанным целям.
title string | function '' значение заголовка по умолчанию, если тег `title` не присутствует
trigger string 'hover focus' как подсказка срабатывает - click | hover | focus | manual. Обратите внимание, что вы можете передать несколько типов триггеров, разделенных пробелами.
delay number | object 0

задержка показа и скрытия подсказки (мс) - не применяется к типу триггера manual

Если предоставлено число, задержка применяется к обоим hide/show

Структура объекта: delay: { show: 500, hide: 100 }

container string | false false

Добавляет подсказку к конкретному элементу container: 'body'

Внимание! Опции для отдельных подсказок можно также указать с помощью атрибутов данных.

Разметка

<a href="#" data-toggle="tooltip" title="first tooltip">hover over me</a>

Методы

$().tooltip(options)

Прикрепляет обработчик подсказки к коллекции элементов.

.tooltip('show')

Показывает подсказку элемента.

$('#element').tooltip('show')

.tooltip('hide')

Скрывает подсказку элемента.

$('#element').tooltip('hide')

.tooltip('toggle')

Переключает подсказку элемента.

$('#element').tooltip('toggle')

.tooltip('destroy')

Скрывает и уничтожает подсказку элемента.

$('#element').tooltip('destroy')

Примеры

Добавьте небольшие наложения контента, такие как те, что на iPad, в любой элемент для размещения вторичной информации. Наведите курсор на кнопку, чтобы активировать всплывающее окно. Требуется включить Tooltip.

Статическое всплывающее окно

Доступны четыре варианта: top, right, bottom, и left aligned.

Всплывающее окно сверху

Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Всплывающее окно справа

Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Всплывающее окно снизу

Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Всплывающее окно слева

Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

Нет разметки, так как всплывающие окна генерируются из JavaScript и контента в атрибуте data.

Живой пример

Четыре направления


Использование

Включите всплывающие окна через JavaScript:

$('#example').popover(options)

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-animation="".

Имя тип по умолчанию описание
animation boolean true применить CSS-переход fade к всплывающему окну
html boolean false Вставьте HTML в всплывающее окно. Если false, метод text jQuery будет использоваться для вставки контента в DOM. Используйте текст, если вы обеспокоены атаками XSS.
placement string | function 'right' как позиционировать всплывающее окно - top | bottom | left | right
selector string false если предоставлен селектор, объекты всплывающего окна будут делегированы к указанным целям
trigger string 'click' как всплывающее окно срабатывает - click | hover | focus | manual
title string | function '' значение заголовка по умолчанию, если атрибут `title` не присутствует
content string | function '' значение контента по умолчанию, если атрибут `data-content` не присутствует
delay number | object 0

задержка показа и скрытия всплывающего окна (мс) - не применяется к типу триггера manual

Если предоставлено число, задержка применяется к обоим hide/show

Структура объекта: delay: { show: 500, hide: 100 }

container string | false false

Добавляет всплывающее окно к конкретному элементу container: 'body'

Внимание! Опции для отдельных всплывающих окон можно также указать с помощью атрибутов данных.

Разметка

Из соображений производительности подсказки и всплывающие окна являются необязательными, что означает вы должны инициализировать их самостоятельно.

Методы

$().popover(options)

Инициализирует всплывающие окна для коллекции элементов.

.popover('show')

Показывает всплывающее окно элемента.

$('#element').popover('show')

.popover('hide')

Скрывает всплывающее окно элемента.

$('#element').popover('hide')

.popover('toggle')

Переключает всплывающее окно элемента.

$('#element').popover('toggle')

.popover('destroy')

Скрывает и уничтожает всплывающее окно элемента.

$('#element').popover('destroy')

Примеры

Добавьте функциональность закрытия для всех сообщений оповещения с помощью этого плагина.

Holy guacamole! Best check yo self, you're not looking too good.

Oh snap! You got an error!

Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

Take this action Or do this


Использование

Включите закрытие оповещения через JavaScript:

$(".alert").alert()

Разметка

Просто добавьте data-dismiss="alert" к вашей кнопке закрытия, чтобы автоматически добавить функциональность закрытия для сообщения оповещения.

<a class="close" data-dismiss="alert" href="#">&times;</a>

Методы

$().alert()

Оборачивает все сообщения оповещения с функциональностью закрытия. Чтобы ваши сообщения оповещения анимировались при закрытии, убедитесь, что они уже имеют классы .fade и .in.

.alert('close')

Закрывает сообщение оповещения.

$(".alert").alert('close')

События

Класс оповещения Bootstrap предоставляет несколько событий для подключения к функциональности оповещения.

Событие Описание
close Это событие срабатывает сразу после вызова метода экземпляра close.
closed Это событие срабатывает, когда сообщение оповещения было закрыто (будет ждать завершения CSS-переходов).
$('#my-alert').bind('closed', function () {
  // do something…
})

Примеры

Делайте больше с кнопками. Управляйте состояниями кнопок или создавайте группы кнопок для более компонентов, таких как панели инструментов.

Состояние

Добавьте data-loading-text="Loading..." для использования состояния загрузки на кнопке.

<button type="button" class="btn btn-primary" data-loading-text="Loading...">Loading state</button>

Одиночный переключатель

Добавьте data-toggle="button" для активации переключения на одной кнопке.

<button type="button" class="btn btn-primary" data-toggle="button">Single Toggle</button>

Чекбокс

Добавьте data-toggle="buttons-checkbox" для стиля переключения чекбокса на группе кнопок.

<div class="btn-group" data-toggle="buttons-checkbox">
  <button type="button" class="btn btn-primary">Left</button>
  <button type="button" class="btn btn-primary">Middle</button>
  <button type="button" class="btn btn-primary">Right</button>
</div>

Радио

Добавьте data-toggle="buttons-radio" для стиля переключения радио на группе кнопок.

<div class="btn-group" data-toggle="buttons-radio">
  <button type="button" class="btn btn-primary">Left</button>
  <button type="button" class="btn btn-primary">Middle</button>
  <button type="button" class="btn btn-primary">Right</button>
</div>

Использование

Включите кнопки через JavaScript:

$('.nav-tabs').button()

Разметка

Атрибуты данных являются неотъемлемой частью плагина кнопок. Ознакомьтесь с примерами кода ниже для различных типов разметки.

Опции

Нет

Методы

$().button('toggle')

Переключает состояние нажатия. Дает кнопке вид, что она была активирована.

Внимание! Вы можете включить автоматическое переключение кнопки, используя атрибут data-toggle.
<button type="button" class="btn" data-toggle="button" >…</button>

$().button('loading')

Устанавливает состояние кнопки в состояние загрузки - отключает кнопку и меняет текст на текст загрузки. Текст загрузки должен быть определен на элементе кнопки с помощью атрибута данных data-loading-text.

<button type="button" class="btn" data-loading-text="loading stuff..." >...</button>
Внимание! Firefox сохраняет состояние отключения между загрузками страниц. Для этого можно использовать autocomplete="off".

$().button('reset')

Сбрасывает состояние кнопки - меняет текст на исходный текст.

$().button(string)

Сбрасывает состояние кнопки - меняет текст на любое определенное текстовое состояние.

<button type="button" class="btn" data-complete-text="finished!" >...</button>
<script>
  $('.btn').button('complete')
</script>

О Collapse

Получите базовые стили и гибкую поддержку для схлопывающихся компонентов, таких как аккордеоны и навигация.

* Требуется плагин Transitions для включения.

Пример аккордеона

Используя плагин collapse, мы создали простой виджет аккордеона:

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
<div class="accordion" id="accordion2">
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
        Collapsible Group Item #1
      </a>
    </div>
    <div id="collapseOne" class="accordion-body collapse in">
      <div class="accordion-inner">
        Anim pariatur cliche...
      </div>
    </div>
  </div>
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
        Collapsible Group Item #2
      </a>
    </div>
    <div id="collapseTwo" class="accordion-body collapse">
      <div class="accordion-inner">
        Anim pariatur cliche...
      </div>
    </div>
  </div>
</div>
...

Вы также можете использовать плагин без разметки аккордеона. Создайте кнопку, которая переключает расширение и сворачивание другого элемента.

<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
  simple collapsible
</button>

<div id="demo" class="collapse in"> … </div>

Использование

Через атрибуты данных

Просто добавьте data-toggle="collapse" и data-target к элементу, чтобы автоматически назначить управление схлопывающимся элементом. Атрибут data-target принимает CSS-селектор для применения схлопывания. Убедитесь, что добавили класс collapse к схлопывающемуся элементу. Если вы хотите, чтобы он по умолчанию был открыт, добавьте дополнительный класс in.

Чтобы добавить управление группой, подобным аккордеону, к схлопывающемуся элементу, добавьте атрибут данных data-parent="#selector". Обратитесь к демонстрации, чтобы увидеть это в действии.

Через JavaScript

Включите вручную с помощью:

$(".collapse").collapse()

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-parent="".

Имя тип по умолчанию описание
parent selector false Если селектор, то все схлопывающиеся элементы под указанным родителем будут закрыты, когда этот схлопывающийся элемент будет показан. (аналогично традиционному поведению аккордеона)
toggle boolean true Переключает схлопывающийся элемент при вызове

Методы

.collapse(options)

Активирует ваш контент как схлопывающийся элемент. Принимает необязательный объект опций object.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('toggle')

Переключает схлопывающийся элемент на видимый или скрытый.

.collapse('show')

Показывает схлопывающийся элемент.

.collapse('hide')

Скрывает схлопывающийся элемент.

События

Класс collapse Bootstrap предоставляет несколько событий для подключения к функциональности схлопывания.

Событие Описание
show Это событие срабатывает сразу после вызова метода экземпляра show.
shown Это событие срабатывает, когда схлопывающийся элемент становится видимым для пользователя (будет ждать завершения CSS-переходов).
hide Это событие срабатывает сразу после вызова метода экземпляра hide.
hidden Это событие срабатывает, когда схлопывающийся элемент становится скрытым для пользователя (будет ждать завершения CSS-переходов).
$('#myCollapsible').on('hidden', function () {
  // do something…
})

Пример

Базовый, легко расширяемый плагин для быстрого создания элегантных typeaheads с любым текстовым полем формы.

<input type="text" data-provide="typeahead">

Вы должны установить autocomplete="off", чтобы предотвратить появление стандартных меню браузера над выпадающим списком Bootstrap typeahead.


Использование

Через атрибуты данных

Добавьте атрибуты данных для регистрации элемента с функциональностью typeahead, как показано в примере выше.

Через JavaScript

Вызовите typeahead вручную с помощью:

$('.typeahead').typeahead()

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-source="".

Имя тип по умолчанию описание
source array, function [ ] Источник данных для запроса. Может быть массивом строк или функцией. Функция принимает два аргумента: query значение в поле ввода и process обратный вызов. Функция может использоваться синхронно, возвращая источник данных непосредственно, или асинхронно через один аргумент обратного вызова process.
items number 8 Максимальное количество элементов для отображения в выпадающем списке.
minLength number 1 Минимальная длина символов, необходимая для запуска автозаполнения
matcher function case insensitive Метод, используемый для определения, соответствует ли запрос элементу. Принимает один аргумент, item, с которым нужно протестировать запрос. Доступ к текущему запросу осуществляется через this.query. Возвращает логическое значение true, если запрос соответствует.
sorter function exact match,
case sensitive,
case insensitive
Метод, используемый для сортировки результатов автозаполнения. Принимает один аргумент items и имеет область видимости экземпляра typeahead. Доступ к текущему запросу осуществляется через this.query.
updater function returns selected item Метод, используемый для возврата выбранного элемента. Принимает один аргумент — item — и имеет область видимости экземпляра typeahead.
highlighter function highlights all default matches Метод, используемый для подсветки результатов автозаполнения. Принимает один аргумент item и имеет область видимости экземпляра typeahead. Должен возвращать HTML.

Методы

.typeahead(options)

Инициализирует поле ввода с typeahead.

Пример

Нижнее меню слева является живым примером плагина affix.


Использование

Через атрибуты данных

Чтобы легко добавить поведение affix к любому элементу, просто добавьте data-spy="affix" к элементу, который вы хотите отслеживать. Затем используйте смещения для определения, когда переключать фиксацию элемента включена или выключена.

<div data-spy="affix" data-offset-top="200">...</div>
Внимание! Вы должны управлять положением зафиксированного элемента и поведением его непосредственного родителя. Положение контролируется affix, affix-top и affix-bottom. Помните, что при включении affix необходимо проверить потенциально схлопнувшегося родителя, так как он удаляет контент из нормального потока страницы.

Через JavaScript

Вызовите плагин affix через JavaScript:

$('#navbar').affix()

Опции

Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-, например data-offset-top="200".

Имя тип по умолчанию описание
offset number | function | object 10 Пиксели для смещения от экрана при расчете положения прокрутки. Если предоставлено одно число, смещение будет применено в обоих направлениях (верх и лево). Чтобы слушать одно направление или несколько уникальных смещений, просто предоставьте объект offset: { x: 10 }. Используйте функцию, когда вам нужно динамически предоставлять смещение (полезно для некоторых адаптивных дизайнов).