A multi feature jQuery plugin for Bootstrap 4 to generate table of contents dynamically. The plugin get headings from article and make a beautiful content menu in sidebar. When user clicks a specific heading from TOC then content page smoothly scroll to that heading’s section.
Moreover, you can fully customize content menu with its available options & with additional CSS according to your needs.
Plugin Overview
Plugin: | jquery-dynamic-content-menu |
Author: | Sergio |
Licence: | MIT Licence |
Published: | January 20, 2024 |
Repository: | Fork on GitHub |
Dependencies: | jQuery 1.3.1 or Latest version and Bootstrap 4.1.3 |
File Type: | zip archive (HTML, CSS & JavaScript ) |
Package Size: | 14.5 KB |
How to Use Bootstrap Table of Contents
1.Load the Bootstrap and jQuery in your HTML document to getting started with dynamic table of contents.
<!-- jQuery --> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <!-- Bootstrap CSS --> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <!-- Bootstrap JS --> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
2. Also include plugin’s assets that will generate table of contents.
<!-- Dynamic TOC Assets --> <link rel="stylesheet" href="css/jquery-dynamic-content-menu.css"> <script src="js/jquery-dynamic-content-menu.js"></script>
3. After that, create some paragraph with headings.
<h1> First heading </h1> <p> Some contents...</p> . . . <h2> Second heading </h2> <p> Some contents...</p> . . . <h2> Third heading </h2> <p> Some contents...</p>
4. Create a div
element with a unique id in which TOC will be generated.
<!-- Side --> <div class="col-md-4"> <!-- Plugin menu in this place --> <div id="dinamicMenu"></div> </div>
5. Finally, initialize the plugin in jQuery document ready function to active bootstrap 4 table of contents.
$(document).ready(function(){ $("#dinamicMenu").dynamicContentMenu({ 'selectors' : "h1, h2", }); });
Advance Configuration Options for Bootstrap Table of Contents
The following are some advance configuration options to create / customize “dynamic table of contents”.
Option | Description, Default, Type |
---|---|
theme |
Define the theme for TOC. Default: “material”, Type: String.
$("#dinamicMenu").dynamicContentMenu({ theme: "material", }); |
selectors |
This option selects headings to be shown in TOC. Defaullt: “h1, h2, h3”, Type: String | Object.
$("#dinamicMenu").dynamicContentMenu({ selectors: "h1, h2, h3", }); |
extendPage |
Decide weather to extend page or not. Default: true, Type: Boolean.
$("#dinamicMenu").dynamicContentMenu({ extendPage: false, }); |
smoothScroll |
Decide weather to scroll smoothly to sections or not. Default: true, Type: Boolean.
$("#dinamicMenu").dynamicContentMenu({ smoothScroll: false, }); |
scrollHistory |
Adds a hash to the page url, to maintain history, when scrolling to a DynamicContentMenu item. Default: false, Type: Boolean.
$("#dinamicMenu").dynamicContentMenu({ scrollHistory: true, }); |
smoothScrollSpeed |
Define the scrolling speed. Default: “medium”, Type: String.
$("#dinamicMenu").dynamicContentMenu({ smoothScrollSpeed: "medium", }); |
hideEffect |
CSS animation for hiding sub headings on scroll. Default: “slideUp”, Type: String.
$("#dinamicMenu").dynamicContentMenu({ hideEffect: "slideUp", }); |
Similar Code Snippets:
I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences.
I truly enjoy what I’m doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.