How to scroll to specific element using jQuery ? - GeeksforGeeks

03 Aug, 2021
Many times, in our website we want to scroll automatically to a section of the webpage when we click on a button or a heading in a navbar or a list. So, to achieve this automatic scrolling to the required element, we need to take the help of jQuery. Using jQuery, we can achieve this in a very simple way. But first we need to understand two methods namely scrollTop() and offSet() in jQuery.
scrollTop() method: It helps to get the current vertical position of the scrollbar of the first element, in the set of all matched elements.
scrollTop() method: It is used to set the vertical position of the scroll bar to the value ‘val’.
offSet() Method: It is used to get the coordinates of the first element in the set of all matched elements.
Example 1: This example describes how to scroll a specific element using jQuery.
<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8">    <meta name="viewport" content=        "width=device-width, initial-scale=1.0">      <script src="https://code.jquery.com/jquery-3.5.1.min.js"        integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="        crossorigin="anonymous">    </script>          <title>        How to scroll to specific         item using jQuery?    </title>          <style>        div {            color: #0f9d58;            border: 3px solid #0f9d58;            width: 200px;            height: 100px;            overflow: auto;        }          p {            width: 300px;            height: 300px;        }    </style></head>  <body>    <div class="demo">        <h1>Heading</h1>        <p>paragraph</p>    </div>      <script>        var container = $('div');        var scrollTo = $('p');          // Calculating new position of scrollbar        var position = scrollTo.offset().top                 - container.offset().top                 + container.scrollTop();          // Setting the value of scrollbar        container.scrollTop(position);    </script></body>  </html>
Output:
Example 2: In this example, we will see how to scroll to different sections of the page by clicking different buttons, along with a scrolling effect.
<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8">    <meta name="viewport" content=        "width=device-width, initial-scale=1.0">      <script src="https://code.jquery.com/jquery-3.5.1.min.js"        integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="        crossorigin="anonymous">    </script>          <title>        How to scroll to specific         item using jQuery?    </title>      <style>        div {            color: #0f9d58;            border: 3px solid #0f9d58;            margin: 10px;            width: 200px;            height: 100px;            overflow: auto;        }          p {            width: 300px;            height: 300px;        }          button {            margin: 10px;        }    </style></head>  <body>    <div class="demo">        <h1>Heading</h1>        <p id="p1">paragraph 1</p>        <p id="p2">paragraph 2</p>    </div>      <button onclick="scrollParagraph1()">        paragraph 1    </button>      <button onclick="scrollParagraph2()">        paragraph 2    </button>      <script>        var container = $('div');          // Scrolls to paragraph 1        function scrollParagraph1() {            var scrollTo = $("#p1");              // Calculating new position            // of scrollbar            var position = scrollTo.offset().top                 - container.offset().top                 + container.scrollTop();              // Animating scrolling effect            container.animate({                scrollTop: position            });        }          // Scrolls to paragraph 2        function scrollParagraph2() {            var scrollTo = $("#p2");              // Calculating new position             // of scrollbar            var position = scrollTo.offset().top                 - container.offset().top                 + container.scrollTop();              // Animating scrolling effect            container.animate({                scrollTop: position            });        }    </script></body>  </html>
Output:
When the second button is clicked, the output is as follows.
jQuery is an open source JavaScript library that simplifies the interactions between an HTML/CSS document, It is widely famous with it’s philosophy of “Write less, do more”.You can learn jQuery from the ground up by following this jQuery Tutorial and jQuery Examples.
Attention reader! Don’t stop learning now. Get hold of all the important HTML concepts with the Web Design for Beginners | HTML  course.
CSS-Misc
HTML-Misc
jQuery-Misc
Picked
CSS
HTML
JQuery
Web Technologies
HTML
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Build a Survey Form using HTML and CSS
CSS | Text Formatting
How to align content of a div to the bottom using CSS ?
Primer CSS Flexbox Flex Direction
Difference between em and rem units in CSS
How to Insert Form Data into Database using PHP ?
Form validation using HTML and JavaScript
How to set input type date in dd-mm-yyyy format using HTML ?
Hide or show elements in HTML using display property