Vertical Scroll Position Indicator - jQuery Scroll Pointers
File Size: | 2.7 KB |
---|---|
Views Total: | 2335 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A jQuery based vertical scroll position indicator for one page scroll website that automatically adds an active class to the indicator bullets when scrolling through page sections.
How to use it:
1. Create the page sections as follows:
<main class="main"> <section class="main__section main__section--1"></section> <section class="main__section main__section--2"></section> <section class="main__section main__section--3"></section> <section class="main__section main__section--4"></section> </main>
2. Create the HTML for the vertical scroll position indicator.
<nav> <ul> <li class="dot dot--1"></li> <li class="dot dot--2"></li> <li class="dot dot--3"></li> <li class="dot dot--4"></li> </ul> </nav>
3. Style & position the page sections as follows:
nav { position: fixed; top: 30%; bottom: 30%; right: 2%; width: 60px; padding: 30px 0; } nav ul { height: 100%; margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: space-around;; align-items: center; } nav ul li { width: 30px; height: 30px; border-radius: 50%; cursor: pointer; background-color: #f4f4e4; }
4. Import the necessary jQuery library into the document.
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"> </script>
5. The main function to detect the scroll position and add/remove active class in case the page section is scrolled into view.
function changeDot() { var scrollTop = $('html, body').scrollTop(), section = $('.main__section'); section.each(function (i, elem) { var that = $(elem), sectionScroll = that.offset().top, sectionHeigth = that.outerHeight(), distance = sectionScroll - scrollTop, procent = (-distance * 100) / (sectionHeigth); if (procent >= -10 && procent <= 90) { var dots = $('.dot'); var dotsEq = dots.eq(i) dotsEq.prev().removeClass('active'); dotsEq.next().removeClass('active'); dotsEq.addClass('active'); } }) }
6. Execute the function on scroll.
$(document).on("scroll", changeDot)
7. Apply your own styles to the activated indicator bullets.
.active{ box-shadow: 0 0 0 3px #222 , 0 0 0 6px #222; }
This awesome jQuery plugin is developed by GrzegorzNecka. For more Advanced Usages, please check the demo page or visit the official website.