How to Create Scroll Indicator using HTML CSS and JavaScript ? Last Updated : 26 Jul, 2024 Comments Improve Suggest changes Like Article Like Report Scroll Indicator is a progress bar that represents how much a page has been scrolled. When we scroll down the bar fills up and when we scroll up the bar amount reduces. Approach: Now, we will create a basic webpage with text to enable scrolling and then use JavaScript to make the scroll indicator work. HTML Code: In this section, we will create a basic structure of the body. html <!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> <title>GFG : Scroll Indicator</title> </head> <body> <!--The scroll indicator line at the top of page--> <div class="line" id="scrollIndicator"></div> <!--Content to fill the page to enable scrolling--> <div class="text"> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> </div> </body> </html> CSS code: In this section, we will add some CSS property to set the style to create scroll indicator. CSS <style> body { margin: 0; } /* Formatting text to fill the page */ .text { font-size: 80px; color: green; text-align: center; line-height: 3em; } /* The progress bar - scroll indicator */ .line { background: green; height: 8px; border-radius: 4px; width: 0%; position: fixed; top: 0; } </style> Approach:window.innerHeight - The height of the viewable portion of the browser. document.body.scrollHeight - The height of webpage. window.scrollY - Number of pixels the user has scrolled down so far. maxHeight - Calculate number of pixels user can scroll. percentage - The width of scrollIndicator element. JavaScript Code for Scroll Indicator: javascript <script> // Added event listener to the scroll window.addEventListener('scroll', moveScrollIndicator); // Getting scrollIndicator element by ID const scrollIndicatorElt = document.getElementById('scrollIndicator'); // Height of entire web page - height // of viewable portion of browser const maxHeight = window.document.body.scrollHeight - window.innerHeight; function moveScrollIndicator(e) { // Calculating width of the // scrollIndicator element const percentage = ((window.scrollY) / maxHeight) * 100; // Pixels scrolled by the user // to total scrollable Pixels scrollIndicatorElt.style.width = percentage + '%'; } </script> Complete code: html <!DOCTYPE html> <html> <head> <title>GFG : Scroll Indicator</title> <style> body { margin: 0; } .text { font-size: 80px; color: green; text-align: center; line-height: 3em; } .line { background: green; height: 8px; border-radius: 4px; width: 0%; position: fixed; top: 0; } </style> </head> <body> <div class="line" id="scrollIndicator"></div> <div class="text"> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> <div>GeeksforGeeks</div> </div> <script type="text/javascript"> window.addEventListener('scroll', moveScrollIndicator); const scrollIndicatorElt = document.getElementById('scrollIndicator'); const maxHeight = window.document.body.scrollHeight - window.innerHeight; function moveScrollIndicator(e) { const percentage = ((window.scrollY) / maxHeight) * 100; scrollIndicatorElt.style.width = percentage + '%'; } </script> </body> </html> Output: Comment More infoAdvertise with us Next Article How to Create Scroll Indicator using HTML CSS and JavaScript ? tarundhamor Follow Improve Article Tags : JavaScript Web Technologies JavaScript-Projects Similar Reads Create an Infinite Scroll Page using HTML CSS & JavaScript In this article, we will create an infinite scroll page using HTML, CSS, and JavaScript. Infinite scrolling allows you to load and display content as the user scrolls down the page, providing a seamless browsing experience. We'll fetch and append new content dynamically as the user reaches the end o 2 min read How to Create Shrink Header on Scroll using HTML, CSS and JavaScript ? The Shrink Navigation bar works when the user scrolls down the page. In this article, we will use HTML, CSS, and JavaScript to design a shrink navigation bar. HTML is used to create the structure, and CSS is used to set the style of the HTML structure to make it looks good. This kind of shrinking na 3 min read How to Create Scroll Indicator using ReactJS ? Scroll Indicator in React JS refers to a representation of the length of the page visited or present on the screen. It shows the amount the pages that have been scrolled. PrerequisiteNode.js & npm React JSstyled-componentsReact JS useState() hooks.Approach to create Scroll IndicatorTo create a S 2 min read How to Create a Change Background on Scroll using HTML CSS and JavaScript ? In this article, we will try to change the background color of the container once the scroll occurs. If a user scrolls down the page the background color will be changed. We will use the below approach to accomplish this task.Using the scroll event on the window objectIn this approach, we will use t 6 min read Scrollspy using HTML CSS and JavaScript In this article, we will learn about Scrollspy which is a popular feature used in modern web applications. It is used to highlight and allow to navigate through different sections of long web pages as the user scrolls. It increases the interaction between the user and the web application by providin 5 min read How to Scroll to an Element Inside a Div using JavaScript? To scroll to an element within a div using JavaScript, set the parent div's scrollTop`to the target element's offsetTop. This method allows smooth navigation within a scrollable container. Below are the methods to scroll to an element inside a Div using JavaScript:Table of Content Using scrollIntoVi 3 min read How to Draw on Scroll using JavaScript and SVG ? To create an engaging scroll animation, use JavaScript to manipulate SVG path properties. As the user scrolls, JavaScript calculates the scroll percentage and adjusts the strokeDasharray and strokeDashoffset of the SVG path, gradually drawing the path to create a dynamic visual effect. ApproachCreat 2 min read How to create Infinite Scrolling using onScroll Event in JavaScript? We have seen many shopping sites that list some limited number of products(using a back-end API) when we open the website and scroll down to the bottom, we see that more products are fetched and displayed, and as we scroll even further even more products are loaded and fetched and it keeps happening 3 min read How to create Horizontal Scroll Snap Using HTML and CSS ? In this project, we are going to create a simple Horizontal Scroll Snap by using HTML and CSS only.Glimpse of Project Approach: The best way to animate the HTML objects is by using CSS classes and by setting the transitions at different stages.HTML code:Create an HTML file (index.html).Link the CSS 2 min read How to make Incremental and Decremental counter using HTML, CSS and JavaScript ? While visiting different shopping websites like Flipkart and Amazon you have seen a counter on each product, that counter is used to specify the quantity of that product. Hence, the counter is a very useful part of many websites. In this article, we will design a counter using HTML, CSS, and JavaScr 2 min read Like