Bootstrap with CSS
- Bootstrap - Responsive utilities
- Bootstrap - Helper Classes
- Bootstrap - Images
- Bootstrap - Buttons
- Bootstrap - Forms
- Bootstrap - Tables
- Bootstrap - Code
- Bootstrap - Typography
- Bootstrap - CSS Overview
- Bootstrap - Grid System
Bootstrap Layout Components
- Bootstrap - Wells
- Bootstrap - Panels
- Bootstrap - List Group
- Bootstrap - Media Object
- Bootstrap - Progress Bars
- Bootstrap - Alerts
- Bootstrap - Thumbnails
- Bootstrap - Page Header
- Bootstrap - Jumbotron
- Bootstrap - Badges
- Bootstrap - Labels
- Bootstrap - Pagination
- Bootstrap - Breadcrumb
- Bootstrap - Navbar
- Bootstrap - Navigation Elements
- Bootstrap - Input Groups
- Bootstrap - Button Dropdowns
- Bootstrap - Button Groups
- Bootstrap - Dropdowns
- Bootstrap - Glyphicons
Bootstrap Plugins
- Bootstrap - Affix Plugin
- Bootstrap - Carousel Plugin
- Bootstrap - Collapse Plugin
- Bootstrap - Button Plugin
- Bootstrap - Alert Plugin
- Bootstrap - Popover Plugin
- Bootstrap - Tooltip Plugin
- Bootstrap - Tab Plugin
- Bootstrap - Scrollspy Plugin
- Bootstrap - Dropdown Plugin
- Bootstrap - Modal Plugin
- Bootstrap - Transition Plugin
- Bootstrap - Plugins Overview
Bootstrap Demos
- Bootstrap - featured Demo
- Bootstrap - Icons Demo
- Bootstrap - Social Icons Demo
- Bootstrap - Calendar Demo
- Bootstrap - Map Demo
- Bootstrap - Caption Demo
- Bootstrap - Tabbed slider Demo
- Bootstrap - Ajax Demo
- Bootstrap - Admin Interface Demo
- Bootstrap - Alert Demo
- Bootstrap - Time line Demo
- Bootstrap - Slider Demo
- Bootstrap - Material Design Demo
- Bootstrap - Blog Demo
- Bootstrap - Navigation Demo
- Bootstrap - Responsive Demo
- Bootstrap - Images Demo
- Bootstrap - Buttons Demo
- Bootstrap - Form Demo
- Bootstrap - Table Demo
- Bootstrap - Grid Demo
Bootstrap Useful Resources
- Bootstrap - Discussion
- Bootstrap - Useful Resources
- Bootstrap - Quick Guide
- Bootstrap - Questions and Answers
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Bootstrap - Scrollspy Plugin
The Scroll spy (auto updating nav) plugin allows you to target sections of the page based on the scroll position. In its basic implementation, as you scroll, you can add .active classes to the navbar based on the scroll position.
If you want to include this plugin functionapty inspanidually, then you will need scrollspy.js. Else, as mentioned in the chapter, you can include bootstrap.js or the minified bootstrap.min.js.
Usage
You can add scrollspy behavior to your topbar navigation −
Via data attributes − add data-spy = "scroll" to the element you want to spy on (typically the body). Then add attribute data-target with the ID or class of the parent element of any Bootstrap .nav component. For this to work, you must have elements in the body of the page that have matching IDs of the pnks that you are spying on.
<body data-spy = "scroll" data-target = ".navbar-example"> ... <span class = "navbar-example"> <ul class = "nav nav-tabs"> ... </ul> </span> ... </body>
Via JavaScript − You can invoke the scrollspy with JavaScript instead of using the data attributes, by selecting the element to spy on, and then invoking the .scrollspy() function −
$( body ).scrollspy({ target: .navbar-example })
Example
The following example shows the use of scrollspy plugin via data attributes −
<nav id = "navbar-example" class = "navbar navbar-default navbar-static" role = "navigation"> <span 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> </span> <span class = "collapse navbar-collapse bs-js-navbar-scrollspy"> <ul class = "nav navbar-nav"> <p><a href = "#ios">iOS</a></p> <p><a href = "#svn">SVN</a></p> <p 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"> <p><a href = "#jmeter" tabindex = "-1">jmeter</a></p> <p><a href = "#ejb" tabindex = "-1">ejb</a></p> <p class = "spanider"></p> <p><a href = "#spring" tabindex = "-1">spring</a></p> </ul> </p> </ul> </span> </nav> <span 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 pcense. 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 = "jmeter">jMeter</h4> <p>jMeter is an Open Source testing software. It is 100% pure Java apppcation 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 apppcations to be deployed on J2EE comppant Apppcation 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 apppcations very easily and very rapidly.</p> <p>Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 pcense in June 2003.</p> </span>
Options
Options can be passed via data attributes or JavaScript. Following table psts the options −
Option Name | Type/Default Value | Data attribute name | Description |
---|---|---|---|
offset | number Default: 10 | data-offset | Pixels to offset from top when calculating position of scroll. |
Methods
.scrollspy( refresh ) − When calpng the scrollspy via the JavaScript method, you need to call the .refresh method to update the DOM. This is helpful if any elements of the DOM have changed i.e if you have added or removed some elements. Following would be the syntax to use this method.
$( [data-spy = "scroll"] ).each(function () { var $spy = $(this).scrollspy( refresh ) })
Example
The following example demonstrates the use of .scrollspy( refresh ) method −
<nav id = "myScrollspy" class = "navbar navbar-default navbar-static" role = "navigation"> <span 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> </span> <span class = "collapse navbar-collapse bs-js-navbar-scrollspy"> <ul class = "nav navbar-nav"> <p class = "active"><a href = "#ios">iOS</a></p> <p><a href = "#svn">SVN</a></p> <p 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"> <p><a href = "#jmeter" tabindex = "-1">jmeter</a></p> <p><a href = "#ejb" tabindex = "-1">ejb</a></p> <p class = "spanider"></p> <p><a href = "#spring" tabindex = "-1">spring</a></p> </ul> </p> </ul> </span> </nav> <span data-spy = "scroll" data-target = "#myScrollspy" data-offset = "0" style = "height:200px; overflow:auto; position: relative;"> <span class = "section"> <h4 id = "ios">iOS<small><a href = "#" oncpck = "removeSection(this);"> × 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> </span> <span class = "section"> <h4 id = "svn">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 pcense. 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> </span> <span class = "section"> <h4 id = "jmeter">jMeter<small><a href = "#" oncpck = "removeSection(this);"> × Remove this section</a></small> </h4> <p>jMeter is an Open Source testing software. It is 100% pure Java apppcation for load and performance testing.</p> </span> <span class = "section"> <h4 id = "ejb">EJB</h4> <p>Enterprise Java Beans (EJB) is a development architecture for building highly scalable and robust enterprise level apppcations to be deployed on J2EE comppant Apppcation Server such as JBOSS, Web Logic etc.</p> </span> <span class = "section"> <h4 id = "spring">Spring</h4> <p>Spring framework is an open source Java platform that provides comprehensive infrastructure support for developing robust Java apppcations very easily and very rapidly.</p> <p>Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 pcense in June 2003.</p> </span> </span> <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>
Events
The following table psts the events to work with scrollspy. This event may be used to hook into the function.
Event | Description | Example |
---|---|---|
activate.bs.scrollspy | This event fires whenever a new item becomes activated by the scrollspy. |
$( #myScrollspy ).on( activate.bs.scrollspy , function () { // do something… }) |
Example
The following example demonstrates the use of activate.bs.scrollspy event −
<html> <head> <pnk 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 p.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> <span class = "container"> <nav id = "Navexample" class = "navbar navbar-default" role = "navigation"> <!-- Nav Bar --> <span 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> </span> <!-- Links and Subpnks --> <span class = "collapse navbar-collapse" id = "navbarCollapse"> <ul class = "nav navbar-nav"> <p class = "active"><a href = "#subject-1">Subject 1</a></p> <p><a href = "#subject-2">Subject 2</a></p> <p class = "dropdown"><a href = "#" class = "dropdown-toggle" data-toggle = "dropdown">Subject 3<b class = "caret"></b></a> <ul class = "dropdown-menu"> <p><a href = "#subject-3-1">Subject 3.1</a></p> <p><a href = "#subject-3-2">Subject 3.2</a></p> <p><a href = "#subject-3-3">Subject 3.3</a></p> </ul> </p> <p><a href = "#subject-4">Subject 4</a></p> </ul> </span> </nav> <span class = "scroll-box" data-spy = "scroll" data-offset = "0"> <span class = "subject"> <h3 id = "subject-1">Subject 1 <small><a href = "#" oncpck = "removeSubject(this);">Remove Subject ×</a></small> </h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> <hr> <span class = "subject"> <h3 id = "subject-2">Subject 2 <small><a href = "#" oncpck = "removeSubject(this);">Remove Subject ×</a></small> </h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> <hr> <span class = "subject"> <h3 id = "subject-3">Subject 3 <small><a href = "#" oncpck = "removeSubject(this);"> Remove Subject ×</a></small> </h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p>< </span> <hr> <span class = "subject"> <h4 id = "subject-3-1">Subject 3.1 <small><a href = "#" oncpck = "removeSubject(this);"> Remove Subject ×</a></small> </h4> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> <span class = "subject"> <h4 id = "subject-3-2">Subject 3.2 <small><a href = "#" oncpck = "removeSubject(this);"> Remove Subject ×</a></small> </h4> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> <span class = "subject"> <h4 id = "subject-3-3">Subject 3.3 <small><a href = "#" oncpck = "removeSubject(this);">Remove Subject ×</a></small> </h4> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> <hr> <span class = "subject"> <h3 id = "subject-4">Subject 4 <small><a href = "#" oncpck = "removeSubject(this);">Remove Subject ×</a></small> </h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing ept, sed do eiusmod tempor incididunt ut labore et dolore magna apqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut apquip ex ea commodo consequat.</p> </span> </span> <hr> <h4 id = "spyevent" class = "text-info"></h4> </span> </body> </html>Advertisements