Компьютерапия

    • Офис
      • MS Excel
      • MS Word
      • MS PowerPoint
      • MS Access
    • Веб
      • Joomla
      • WordPress
      • Сайтостроение
      • Уроки HTML
      • Bootstrap 3
      • Web Разработка
      • Web Сервисы и Службы
      • Основы AJAX
      • Изучаем AngularJS
      • Основы CSS
    • Программер
      • Android
      • VBA
      • Основы php
      • JavaScript
      • Основы Arduino
    • Полезные книги
      • Android
      • Assembler
      • Excel
      • linux
      • CSS
      • Delphi
      • Java
      • JavaScript
      • Joomla
      • Web
      • PHP
      • Unity
    • Полезные советы
      • Установки на Virtualbox
      • Продвижение YouTube канала
      • Как заказывать товары на AliExpress
    • Видео уроки
      • Уроки Word
      • Уроки Excel
      • Уроки сайтостроения
      • Уроки Joomla 3
      • Уроки Android
      • Уроки WordPress
      • Полезные советы
      • Уроки PowerPoint
      • Основы Arduino
      • Основы MacOS
      • Основы Vbox
      • Основы Python
    • Блог
    Bootstrap 3
    23 сентября 2018
    11 апреля 2026
    Просмотров: 3015

    Bootstrap - Плагин Scrollspy

    Плагин Scrollspy (auto update nav) позволяет вам настраивать разделы страницы в зависимости от положения прокрутки. В своей базовой реализации при прокрутке вы можете добавлять активные классы в навигационную панель на основе положения прокрутки.

    Содержание:

    • Применение Scrollspy
    • Пример Scrollspy
    • Опции Scrollspy
    • Методы Scrollspy
    • События в Scrollspy

    Если вы хотите включить эту функциональность плагина индивидуально, вам понадобится scrollspy.js, после включения bootstrap.js или bootstrap.min.js.

    Применение Scrollspy

    Вы можете добавить поведение scrollspy в свою навигацию по topbar -

    • Через атрибуты данных - добавьте data-spy = "scroll" к элементу, который вы хотите отслеживать. Затем добавьте атрибут data target с идентификатором или классом родительского элемента любого компонента Bootstrap .nav. Чтобы это сработало, у вас должны быть элементы в теле страницы с соответствующими идентификаторами ссылок, на которые вы следите.
      
      <body data-spy = "scroll" data-target = ".navbar-example">
         ...
         <div class = "navbar-example">
            <ul class = "nav nav-tabs">
               ...
            </ul>
         </div>
         ...
      </body>
      
    • С помощью JavaScript - Вы можете вызвать scrollspy с JavaScript вместо использования атрибутов данных, выбрав элемент шпионить, а затем вызова .scrollspy() функцию -
      
      $('body').scrollspy({ target: '.navbar-example' })
      

    Пример Scrollspy

    В следующем примере показано использование плагина scrollspy через атрибуты данных -

    
    <nav id = "navbar-example" class = "navbar navbar-default navbar-static" role = "navigation">
      
       <div class = "navbar-header">
          <button class = "navbar-toggle" type = "button" data-toggle = "collapse"
             data-target = ".bs-js-navbar-scrollspy">
             <span class = "sr-only">Toggle navigation</span>
             <span class = "icon-bar"></span>
             <span class = "icon-bar"></span>
             <span class = "icon-bar"></span>
          </button>
                           
          <a class = "navbar-brand" href = "#">Tutorial Name</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 = "navbarDrop2" class = "dropdown-toggle" data-toggle = "dropdown">
                   Java
                   <b class = "caret"></b>
                </a>
               
                <ul class = "dropdown-menu" role = "menu" aria-labelledby = "navbarDrop2">
                   <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>
      
    </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 is a mobile operating system developed and distributed by Apple
          Inc. Originally released in 2007 for the iPhone, iPod Touch, and Apple
          TV. iOS is derived from OS X, with which it shares the Darwin
          foundation. iOS is Apple's mobile version of the OS X operating system
          used on Apple computers.</p>
      
       <h4 id = "svn">SVN</h4>
      
       <p>Apache Subversion which is often abbreviated as SVN, is a software
          versioning and revision control system distributed under an open source
          license. Subversion was created by CollabNet Inc. in 2000, but now it
          is developed as a project of the Apache Software Foundation, and as
          such is part of a rich community of developers and users.</p>
      
       <h4 id = "jmeter1">jMeter</h4>
      
       <p>jMeter is an Open Source testing software. It is 100% pure Java
          application for load and performance testing.</p>
      
       <h4 id = "ejb">EJB</h4>
      
       <p>Enterprise Java Beans (EJB) is a development architecture for building
          highly scalable and robust enterprise level applications to be deployed
          on J2EE compliant Application Server such as JBOSS, Web Logic etc.</p>
      
       <h4 id = "spring">Spring</h4>
      
       <p>Spring framework is an open source Java platform that provides
          comprehensive infrastructure support for developing robust Java
          applications very easily and very rapidly.</p>
      
       <p>Spring framework was initially written by Rod Johnson and was first
          released under the Apache 2.0 license in June 2003.</p>
      
    </div>

    Опции Scrollspy

    Параметры могут передаваться через атрибуты данных или JavaScript. В следующих таблицах перечислены варианты -

    Название опции Тип/значение по умолчанию Имя атрибута данных Описание
    offsetномер По умолчанию: 10data-offsetПиксели для смещения сверху при расчете положения прокрутки.

    Методы Scrollspy

    .scrollspy ('refresh') - При вызове scrollspy с помощью метода JavaScript вам необходимо вызвать метод .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 = "navbar-header">
          <button class = "navbar-toggle" type = "button" data-toggle = "collapse"
             data-target = ".bs-js-navbar-scrollspy">
             <span class = "sr-only">Toggle navigation</span>
             <span class = "icon-bar"></span>
             <span class = "icon-bar"></span>
             <span class = "icon-bar"></span>
          </button>
                           
          <a class = "navbar-brand" href = "#">Tutorial Name</a>
       </div>
      
       <div class = "collapse navbar-collapse bs-js-navbar-scrollspy">
          <ul class = "nav navbar-nav">
             <li class = "active"><a href = "#ios1">iOS</a></li>
             <li><a href = "#svn1">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 = "#jmeter1" tabindex = "-1">jmeter</a></li>
                   <li><a href = "#ejb1" tabindex = "-1">ejb</a></li>
                  
                   <li class = "divider"></li>
                   <li><a href = "#spring1" tabindex = "-1">spring</a></li>
                </ul>
               
             </li>
          </ul>
       </div>
      
    </nav>
     
    <div data-spy = "scroll" data-target = "#myScrollspy" data-offset = "0" 
       style = "height:200px; overflow:auto; position: relative;">
      
       <div class = "section">
          <h4 id = "ios1">iOS<small><a href = "#" onclick = "removeSection(this);">
             &times; Remove this section</a></small>
          </h4>
         
          <p>iOS is a mobile operating system developed and distributed by
             Apple Inc. Originally released in 2007 for the iPhone, iPod Touch, and
             Apple TV. iOS is derived from OS X, with which it shares the Darwin
             foundation. iOS is Apple's mobile version of the OS X operating system
             used on Apple computers.</p>
       </div>
      
       <div class = "section">
          <h4 id = "svn1">SVN<small></small></h4>
          <p>Apache Subversion which is often abbreviated as SVN, is a software
             versioning and revision control system distributed under an open source
             license. Subversion was created by CollabNet Inc. in 2000, but
             now it is developed as a project of the Apache Software Foundation,
             and as such is part of a rich community of developers and users.</p>
       </div>
      
       <div class = "section">
          <h4 id = "jmeter">jMeter<small><a href = "#" onclick = "removeSection(this);">
             &times; Remove this section</a></small>
          </h4>
         
          <p>jMeter is an Open Source testing software. It is 100% pure Java
             application for load and performance testing.</p>
       </div>
      
       <div class = "section">
          <h4 id = "ejb1">EJB</h4>
         
          <p>Enterprise Java Beans (EJB) is a development architecture for
             building highly scalable and robust enterprise level applications
             to be deployed on J2EE compliant Application Server such as
             JBOSS, Web Logic etc.</p>
       </div>
               
       <div class = "section">
          <h4 id = "spring1">Spring</h4>
         
          <p>Spring framework is an open source Java platform that provides
             comprehensive infrastructure support for developing robust Java
             applications very easily and very rapidly.</p>
         
          <p>Spring framework was initially written by Rod Johnson and was first
             released under the Apache 2.0 license in June 2003.</p>
       </div>
      
    </div>
     
    <script type = "text/javascript">
       $(function(){
          removeSection = function(e) {
             $(e).parents(".section").remove();
            
             $('[data-spy = "scroll"]').each(function () {
                var $spy = $(this).scrollspy('refresh')
             });
          }
          $("#myScrollspy").scrollspy();
       });
    </script>

    События в Scrollspy

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

    Событие Описание Пример
    activate.bs.scrollspyЭто событие срабатывает всякий раз, когда новый элемент активируется с помощью scrollspy.
    
    $("#myScrollspy").on("activate.bs.scrollspy", function(){
       // do something…
    })
    

    В следующем примере показано использование события activate.bs.scrollspy -

    
    <html>
       <head>
          <link rel = "stylesheet" href = "bootstrap/css/bootstrap.min.css">
          <script src = "bootstrap/scripts/jquery.min.js"></script>
          <script src = "bootstrap/js/bootstrap.min.js"></script>
         
          <script>
             $(document).ready(function(){
                removeSection = function(e) {
                   $(e).parents(".subject").remove();
               
                   $('[data-spy="scroll"]').each(function () {
                      var $spy = $(this).scrollspy('refresh')
                   });
                }
            
                $("#Navexample").scrollspy();
            
                // The event is fired when an item gets actived with the scrollspy
                $("#Navexample").on('activate.bs.scrollspy', function () {
                   var currentSection = $(".nav li.active > a").text();
                   $("#spyevent").html("Current Item being viewed >> " + currentSection);
                })
                                                    
             });
          </script>
      
          <style>
             .scroll-box {
                height: 250px;
                position: relative;
                overflow: auto;
                font-size:2em;
             }
          </style>
         
       </head>
      
       <body>
          <div class = "container">
             <nav id = "Navexample" class = "navbar navbar-default" role = "navigation">
         
                <!-- Nav Bar -->
                <div class = "navbar-header">
                   <button type = "button" class = "navbar-toggle"
                      data-toggle = "collapse" data-target = "#navbarCollapse">
                  
                      <span class = "sr-only">Toggle navigation</span>
                      <span class = "icon-bar"></span>
                      <span class = "icon-bar"></span>
                      <span class = "icon-bar"></span>
                   </button>
                                                                
                   <a class = "navbar-brand" href = "#">Tutorials Point</a>
                </div>
               
                <!-- Links and Sublinks -->
                <div class = "collapse navbar-collapse" id = "navbarCollapse">
                   <ul class = "nav navbar-nav">
                      <li class = "active"><a href = "#subject-1">Subject 1</a></li>
                      <li><a href = "#subject-2">Subject 2</a></li>
                   
                      <li class = "dropdown"><a href = "#" class = "dropdown-toggle"
                         data-toggle = "dropdown">Subject 3<b class = "caret"></b></a>
                        
                         <ul class = "dropdown-menu">
                            <li><a href = "#subject-3-1">Subject 3.1</a></li>
                            <li><a href = "#subject-3-2">Subject 3.2</a></li>
                            <li><a href = "#subject-3-3">Subject 3.3</a></li>
                         </ul>
                         
                      </li>
                                                                            
                      <li><a href = "#subject-4">Subject 4</a></li>
                   </ul>
                </div>
               
             </nav>
            
             <div class = "scroll-box" data-spy = "scroll" data-offset = "0">
                <div class = "subject">
               
                   <h3 id = "subject-1">Subject 1
                      <small><a href = "#" onclick = "removeSubject(this);">Remove Subject ×</a></small>
                   </h3>
               
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
                                                    
                <hr>
            
                <div class = "subject">
                   <h3 id = "subject-2">Subject 2
                      <small><a href = "#" onclick = "removeSubject(this);">Remove Subject ×</a></small>
                   </h3>
               
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
                                                    
                <hr>
            
                <div class = "subject">
                   <h3 id = "subject-3">Subject 3
                      <small><a href = "#" onclick = "removeSubject(this);"> Remove Subject ×</a></small>
                   </h3>
               
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p><
                </div>
                                                    
                <hr>
               
                <div class = "subject">
                   <h4 id = "subject-3-1">Subject 3.1
                      <small><a href = "#" onclick = "removeSubject(this);"> Remove Subject ×</a></small>
                   </h4>
                  
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
               
                <div class = "subject">
                   <h4 id = "subject-3-2">Subject 3.2
                      <small><a href = "#" onclick = "removeSubject(this);"> Remove Subject ×</a></small>
                   </h4>
                  
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
               
                <div class = "subject">
                   <h4 id = "subject-3-3">Subject 3.3
                      <small><a href = "#" onclick = "removeSubject(this);">Remove Subject ×</a></small>
                   </h4>
                  
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
                                                    
                <hr>
               
                <div class = "subject">
                   <h3 id = "subject-4">Subject 4
                      <small><a href = "#" onclick = "removeSubject(this);">Remove Subject ×</a></small>
                   </h3>
                  
                   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                      sed do eiusmod tempor incididunt ut labore et dolore magna
                      aliqua. Ut enim ad minim veniam, quis nostrud exercitation
                      ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                </div>
               
             </div>
             <hr>
            
             <h4 id = "spyevent" class = "text-info"></h4>
          </div>
         
       </body>
    </html>
    
    Tags: Bootstrap 3, сайтостроение, уроки html
    Подпишитесь на канал в Rutube

    Свежие записи 2025

    ВПР на Python, без Excel 16 мая 2026
    Python 3 на Android. Запускаем Ping 28 марта 2026
    Блютуз подключение в Android (проект для Arduino). Часть 2 18 января 2025
    Анимация в PowerPoint - (видео) 09 января 2025
    Меняем имена в GoPro 10 18 июля 2023
    YouTube все - ютубКапут - (видео) 20 марта 2022
    Как сделать презентацию в PowerPoint, презентация с нуля в Рower Point 2016 20 февраля 2022
    Как изменять текст в word с помощью языка Python в среде PyCharm Меняем параграфы таблицы и шрифты - (видео) 09 февраля 2022
    Как преобразовать doc в docx на языке python в PyCharm Массовая конвертация старых файлов в docx - (видео) 09 февраля 2022
    Как установить blender 3.0? Покажу два способа, как установить блендер версии 3.0 на свой комп! - (видео) 05 февраля 2022

    ТОП-10 статей 2025

    • 15 лучших эффектов переходов между слайдами в Power Point
    • Функции даты-времени в VBA. Работа с датой и временем
    • Добавление номеров страниц в колонтитул в Word
    • Массивы в VBA: как работать с массивами
    • Сортировка и фильтрация записей в Access
    • Форматирование и настройка оглавления в Word
    • Методы PHP GET и POST, переменная $_REQUEST
    • Создание форм в Access
    • Установка Android Studio, настройка SDK
    • Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse
    • Офис
      • MS Excel
      • MS Word
      • MS PowerPoint
      • MS Access
    • Веб
      • Joomla
      • WordPress
      • Сайтостроение
      • Уроки HTML
      • Bootstrap 3
      • Web Разработка
      • Web Сервисы и Службы
      • Основы AJAX
      • Изучаем AngularJS
      • Основы CSS
    • Программер
      • Android
      • VBA
      • Основы php
      • JavaScript
      • Основы Arduino
    • Полезные книги
      • Android
      • Assembler
      • Excel
      • linux
      • CSS
      • Delphi
      • Java
      • JavaScript
      • Joomla
      • Web
      • PHP
      • Unity
    • Полезные советы
      • Установки на Virtualbox
      • Продвижение YouTube канала
      • Как заказывать товары на AliExpress
    • Видео уроки
      • Уроки Word
      • Уроки Excel
      • Уроки сайтостроения
      • Уроки Joomla 3
      • Уроки Android
      • Уроки WordPress
      • Полезные советы
      • Уроки PowerPoint
      • Основы Arduino
      • Основы MacOS
      • Основы Vbox
      • Основы Python
    • Блог

    Категории

    • Уроки Word
    • Уроки Excel
    • Уроки PowerPoint
    • Уроки Access
    • Основы Сайтостройения
    • Уроки HTML
    • Уроки Joomla
    • Уроки WordPress
    • Уроки Bootstrap 3
    • Уроки Android
    • Уроки VBA
    • Основы Arduino

    Разное

    • О сайте
    • Полезные советы
    • Скачать книги
    • Карта сайта
    • Правила сайта

    Видео уроки

    • Уроки Word
    • Уроки Excel
    • Уроки сайтостроения
    • Уроки Joomla 3
    • Уроки Android
    • Уроки WordPress
    • Полезные советы
    • Уроки PowerPoint
    • Основы Arduino

    Подпишитесь в соцсетях

    • Канал на RuTube
    • Группа ВКонтакте
    • Группа в Одноклассниках
    • Канал на YouTube
    © 2019 Компьютерапия - Советы и секреты новичкам в области IT технологий: программирование, сайтостроение, уроки HTML, Word, Excel, Android, Open Server, Joomla, WordPress,PowerPoint, Aliexpress, YouTube, Arduino, видеоуроки.. Все права защищены.
    Перепечатка материалов без согласования допустима при наличии dofollow-ссылки на страницу-источник.