Using Javascript to scroll up and down the webpage

problem

You wish to perform a dynamic scroll of the webpage vertically or horizontally. In this post we will see how to perform a scroll using Javascript.

SOLUTION

In Javascript, we have the scroll() method provided by the window object. Let’s see an example, but first let’s create a webpage that has some sample data – lorem ipsum text so it’s scrollable vertically.

scrollby.html
				
					<html DOCTYPE!>

    <body>
        <p>
        Interdum malesuada taciti bibendum praesent auctor facilisi rutrum non felis natoque phasellus. Adipiscing dapibus nec sem. Sagittis aptent magnis tristique erat lorem eget. Lectus mauris lacinia bibendum donec. Rhoncus ullamcorper vulputate felis aliquet neque, ultrices bibendum. Phasellus quis rutrum penatibus commodo non pharetra posuere potenti id! Primis hendrerit cursus aptent. Elementum parturient metus purus pulvinar enim sed cum class. Leo placerat fermentum vel aliquet tortor cursus ipsum. Egestas phasellus mus elementum felis! Metus rutrum, quam proin molestie ipsum. Magnis.
        </p>
        <p>
        Nibh sed ridiculus fermentum aenean tortor auctor facilisi magnis mi auctor. Litora urna rhoncus facilisi posuere rutrum ac sodales pellentesque ridiculus eros adipiscing fermentum. Nascetur cubilia porta ut enim, convallis urna rhoncus fermentum. Habitasse cras ullamcorper amet. Metus conubia at scelerisque cum mattis! Gravida euismod id vulputate dapibus porttitor pretium. Pellentesque tortor vulputate mus ornare mus habitasse. Cubilia fringilla proin lobortis ultrices torquent platea feugiat montes curabitur. Duis sociosqu parturient non primis magna per nibh morbi. Metus est odio posuere ut massa. Euismod tristique risus ad magna curae;! Felis, luctus lorem habitant taciti venenatis. Neque curabitur porttitor morbi quisque.
        </p>
        <p>
        Semper venenatis maecenas eros adipiscing quam consectetur a aliquet duis tincidunt fringilla ipsum. Egestas adipiscing vitae suscipit ante ante vitae faucibus. Gravida velit commodo nulla integer fringilla orci eros mauris vitae. Habitasse tellus, maecenas ipsum. Lorem commodo proin litora. Habitasse massa litora nullam et et primis tristique posuere ut mauris ad viverra.
        </p>
        <p>
        In vestibulum iaculis posuere. Lacinia ut netus odio, sed donec ut amet laoreet fames. Per faucibus facilisis ad magna eu platea nisl class dis sapien. Vitae in sem dis faucibus. Nibh quisque malesuada feugiat ridiculus faucibus interdum primis blandit placerat orci morbi! Convallis turpis habitasse in facilisi! Nulla ad non morbi erat. Arcu dapibus pellentesque suscipit ridiculus porta. Etiam fermentum id tristique nullam diam. Varius turpis fringilla aenean lorem hendrerit, mattis sapien eleifend pretium magna adipiscing suspendisse. Placerat fermentum, curabitur placerat cum orci tellus cum. Mattis accumsan, maecenas lorem.
        </p>
        <p>
        Iaculis, quis cursus nostra accumsan. Ultrices nostra mattis himenaeos aenean feugiat iaculis facilisi magna primis hac. Dignissim bibendum montes fringilla lectus tellus mi. Dignissim leo in habitant natoque mus senectus quam, aliquam rhoncus. Ac sociis per parturient laoreet sagittis lorem. Magna gravida purus nam id egestas lectus conubia tellus. Rutrum libero adipiscing, velit sociis.
        </p>

    </body>

</html>

				
			
Scrolling

Let’s write some simple Javscript to do the scrolling:

scrollby.html
				
					<script>
        function do_scroll(){
            window.scroll(0,150);
        }
    </script>
				
			

In order to call the function, I will add a button at the top of the page, inside <body> and call the function when clicked, as follows:

scrollby.html
				
					<button onclick="do_scroll()">Scroll</button>

				
			

The full code:

scrollby.html
				
					<html DOCTYPE!>

    <body>
        <button onclick="do_scroll()">Scroll</button>
        <p>
        Interdum malesuada taciti bibendum praesent auctor facilisi rutrum non felis natoque phasellus. Adipiscing dapibus nec sem. Sagittis aptent magnis tristique erat lorem eget. Lectus mauris lacinia bibendum donec. Rhoncus ullamcorper vulputate felis aliquet neque, ultrices bibendum. Phasellus quis rutrum penatibus commodo non pharetra posuere potenti id! Primis hendrerit cursus aptent. Elementum parturient metus purus pulvinar enim sed cum class. Leo placerat fermentum vel aliquet tortor cursus ipsum. Egestas phasellus mus elementum felis! Metus rutrum, quam proin molestie ipsum. Magnis.
        </p>
        <p>
        Nibh sed ridiculus fermentum aenean tortor auctor facilisi magnis mi auctor. Litora urna rhoncus facilisi posuere rutrum ac sodales pellentesque ridiculus eros adipiscing fermentum. Nascetur cubilia porta ut enim, convallis urna rhoncus fermentum. Habitasse cras ullamcorper amet. Metus conubia at scelerisque cum mattis! Gravida euismod id vulputate dapibus porttitor pretium. Pellentesque tortor vulputate mus ornare mus habitasse. Cubilia fringilla proin lobortis ultrices torquent platea feugiat montes curabitur. Duis sociosqu parturient non primis magna per nibh morbi. Metus est odio posuere ut massa. Euismod tristique risus ad magna curae;! Felis, luctus lorem habitant taciti venenatis. Neque curabitur porttitor morbi quisque.
        </p>
        <p>
        Semper venenatis maecenas eros adipiscing quam consectetur a aliquet duis tincidunt fringilla ipsum. Egestas adipiscing vitae suscipit ante ante vitae faucibus. Gravida velit commodo nulla integer fringilla orci eros mauris vitae. Habitasse tellus, maecenas ipsum. Lorem commodo proin litora. Habitasse massa litora nullam et et primis tristique posuere ut mauris ad viverra.
        </p>
        <p>
        In vestibulum iaculis posuere. Lacinia ut netus odio, sed donec ut amet laoreet fames. Per faucibus facilisis ad magna eu platea nisl class dis sapien. Vitae in sem dis faucibus. Nibh quisque malesuada feugiat ridiculus faucibus interdum primis blandit placerat orci morbi! Convallis turpis habitasse in facilisi! Nulla ad non morbi erat. Arcu dapibus pellentesque suscipit ridiculus porta. Etiam fermentum id tristique nullam diam. Varius turpis fringilla aenean lorem hendrerit, mattis sapien eleifend pretium magna adipiscing suspendisse. Placerat fermentum, curabitur placerat cum orci tellus cum. Mattis accumsan, maecenas lorem.
        </p>
        <p>
        Iaculis, quis cursus nostra accumsan. Ultrices nostra mattis himenaeos aenean feugiat iaculis facilisi magna primis hac. Dignissim bibendum montes fringilla lectus tellus mi. Dignissim leo in habitant natoque mus senectus quam, aliquam rhoncus. Ac sociis per parturient laoreet sagittis lorem. Magna gravida purus nam id egestas lectus conubia tellus. Rutrum libero adipiscing, velit sociis.
        </p>
        <p>
        Interdum malesuada taciti bibendum praesent auctor facilisi rutrum non felis natoque phasellus. Adipiscing dapibus nec sem. Sagittis aptent magnis tristique erat lorem eget. Lectus mauris lacinia bibendum donec. Rhoncus ullamcorper vulputate felis aliquet neque, ultrices bibendum. Phasellus quis rutrum penatibus commodo non pharetra posuere potenti id! Primis hendrerit cursus aptent. Elementum parturient metus purus pulvinar enim sed cum class. Leo placerat fermentum vel aliquet tortor cursus ipsum. Egestas phasellus mus elementum felis! Metus rutrum, quam proin molestie ipsum. Magnis.
        </p>
        <p>
        Nibh sed ridiculus fermentum aenean tortor auctor facilisi magnis mi auctor. Litora urna rhoncus facilisi posuere rutrum ac sodales pellentesque ridiculus eros adipiscing fermentum. Nascetur cubilia porta ut enim, convallis urna rhoncus fermentum. Habitasse cras ullamcorper amet. Metus conubia at scelerisque cum mattis! Gravida euismod id vulputate dapibus porttitor pretium. Pellentesque tortor vulputate mus ornare mus habitasse. Cubilia fringilla proin lobortis ultrices torquent platea feugiat montes curabitur. Duis sociosqu parturient non primis magna per nibh morbi. Metus est odio posuere ut massa. Euismod tristique risus ad magna curae;! Felis, luctus lorem habitant taciti venenatis. Neque curabitur porttitor morbi quisque.
        </p>
        <p>
        Semper venenatis maecenas eros adipiscing quam consectetur a aliquet duis tincidunt fringilla ipsum. Egestas adipiscing vitae suscipit ante ante vitae faucibus. Gravida velit commodo nulla integer fringilla orci eros mauris vitae. Habitasse tellus, maecenas ipsum. Lorem commodo proin litora. Habitasse massa litora nullam et et primis tristique posuere ut mauris ad viverra.
        </p>
        <p>
        In vestibulum iaculis posuere. Lacinia ut netus odio, sed donec ut amet laoreet fames. Per faucibus facilisis ad magna eu platea nisl class dis sapien. Vitae in sem dis faucibus. Nibh quisque malesuada feugiat ridiculus faucibus interdum primis blandit placerat orci morbi! Convallis turpis habitasse in facilisi! Nulla ad non morbi erat. Arcu dapibus pellentesque suscipit ridiculus porta. Etiam fermentum id tristique nullam diam. Varius turpis fringilla aenean lorem hendrerit, mattis sapien eleifend pretium magna adipiscing suspendisse. Placerat fermentum, curabitur placerat cum orci tellus cum. Mattis accumsan, maecenas lorem.
        </p>
        <p>
        Iaculis, quis cursus nostra accumsan. Ultrices nostra mattis himenaeos aenean feugiat iaculis facilisi magna primis hac. Dignissim bibendum montes fringilla lectus tellus mi. Dignissim leo in habitant natoque mus senectus quam, aliquam rhoncus. Ac sociis per parturient laoreet sagittis lorem. Magna gravida purus nam id egestas lectus conubia tellus. Rutrum libero adipiscing, velit sociis.
        </p>
        <p>
        In vestibulum iaculis posuere. Lacinia ut netus odio, sed donec ut amet laoreet fames. Per faucibus facilisis ad magna eu platea nisl class dis sapien. Vitae in sem dis faucibus. Nibh quisque malesuada feugiat ridiculus faucibus interdum primis blandit placerat orci morbi! Convallis turpis habitasse in facilisi! Nulla ad non morbi erat. Arcu dapibus pellentesque suscipit ridiculus porta. Etiam fermentum id tristique nullam diam. Varius turpis fringilla aenean lorem hendrerit, mattis sapien eleifend pretium magna adipiscing suspendisse. Placerat fermentum, curabitur placerat cum orci tellus cum. Mattis accumsan, maecenas lorem.
        </p>
        <p>
        Iaculis, quis cursus nostra accumsan. Ultrices nostra mattis himenaeos aenean feugiat iaculis facilisi magna primis hac. Dignissim bibendum montes fringilla lectus tellus mi. Dignissim leo in habitant natoque mus senectus quam, aliquam rhoncus. Ac sociis per parturient laoreet sagittis lorem. Magna gravida purus nam id egestas lectus conubia tellus. Rutrum libero adipiscing, velit sociis.
        </p>
            <p>
        In vestibulum iaculis posuere. Lacinia ut netus odio, sed donec ut amet laoreet fames. Per faucibus facilisis ad magna eu platea nisl class dis sapien. Vitae in sem dis faucibus. Nibh quisque malesuada feugiat ridiculus faucibus interdum primis blandit placerat orci morbi! Convallis turpis habitasse in facilisi! Nulla ad non morbi erat. Arcu dapibus pellentesque suscipit ridiculus porta. Etiam fermentum id tristique nullam diam. Varius turpis fringilla aenean lorem hendrerit, mattis sapien eleifend pretium magna adipiscing suspendisse. Placerat fermentum, curabitur placerat cum orci tellus cum. Mattis accumsan, maecenas lorem.
        </p>
        <p>
        Iaculis, quis cursus nostra accumsan. Ultrices nostra mattis himenaeos aenean feugiat iaculis facilisi magna primis hac. Dignissim bibendum montes fringilla lectus tellus mi. Dignissim leo in habitant natoque mus senectus quam, aliquam rhoncus. Ac sociis per parturient laoreet sagittis lorem. Magna gravida purus nam id egestas lectus conubia tellus. Rutrum libero adipiscing, velit sociis.
        </p>
    </body>

    <script>
        function do_scroll(){
            window.scroll(0,150);
        }
    </script>

</html>

				
			
output
lorem ipsum text with button to scroll down

We can see the button at the top and that the webpage is currently scrolled up. Let’s press the button:

running
javascript scroll in action
Smooth scrolling

We can specify the way the scrolling happens by passing an object with options as a parameter in the scroll() function. For example:

scrollby.html
				
					function do_scroll(){
        window.scroll({
          top: 500,
          left: 0,
          behavior: "smooth",
        });
    }
				
			
running
lorem ipsum text with button to scroll down smooth

conclusion

In this post we saw how to use the scroll() method from the window object – available to us to manipulate the window object (the web browser).

References

https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll

Share it!

Facebook
Twitter
LinkedIn
Reddit
Picture of Ellion

Ellion

Professional IT consultant, writer, programmer enthusiast interested in all sorts of coding.
Eats all cookies 🍪

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

Google Analytics Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

HotJar Cookies

We use Hotjar in order to better understand our users’ needs and to optimize this service and experience. Hotjar is a technology service that helps us better understand our users’ experience (e.g. how much time they spend on which pages, which links they choose to click, what users do and don’t like, etc.) and this enables us to build and maintain our service with user feedback. Hotjar uses cookies and other technologies to collect data on our users’ behavior and their devices. This includes a device's IP address (processed during your session and stored in a de-identified form), device screen size, device type (unique device identifiers), browser information, geographic location (country only), and the preferred language used to display our website. Hotjar stores this information on our behalf in a pseudonymized user profile. Hotjar is contractually forbidden to sell any of the data collected on our behalf.

For further details, please see the ‘about Hotjar’ section of Hotjar’s support site.