How to Smoothly Scroll to an Element on the Page using JavaScript
Table of Contents
JavaScript gives developers a large amount of control over the user experience of users.
One of the most useful things you can do is smoothly scroll to another element on the page.
For example, this can be used to scroll to a form element that needs filling or to a section of a page that has more information.
In this post, we will look at how to smoothly scroll to an element on the page.
How to smoothly scroll to an element
Let's start with our HTML:
HTML<main>
<button class="button">Click here to smoothly scroll</button>
<div class="content">
<p>This is sample content</p>
</div>
</main>
We have a button that will be used to scroll to the content div once clicked.
Now, let's add some CSS:
CSShtml {
scroll-behavior: smooth;
}
The magic here is the scroll-behavior
property. This property allows us to set the scroll behavior of the page, and we are setting it to smooth
.
Now all we need is some JavaScript to scroll to the element when the button is clicked:
JAVASCRIPTconst button = document.querySelector(".button");
const content = document.querySelector(".content");
button.addEventListener("click", () => {
content.scrollIntoView();
});
Now, assuming your content is tall-enough, you should be able to see the content div smoothly scroll into view when you click the button.
Conclusion
In this post, we learned how to easily smoothly scroll to an element on the page.
Simply override the scroll behavior of the page and then scroll to the element you want to scroll to.
Thanks for reading!
- Getting Started with TypeScript
- How to Install Node on Windows, macOS and Linux
- Managing PHP Dependencies with Composer
- Getting Started with Express
- Git Tutorial: Learn how to use Version Control
- How to Set Up Cron Jobs in Linux
- How to deploy a Deno app using Docker
- Getting Started with Sass
- Learn how to use v-model with a custom Vue component
- Getting Started with Moment.js
- Using Push.js to Display Web Browser Notifications
- Building a Real-Time Note-Taking App with Vue and Firebase