// Scroll to specific values// scrollTo is the same
window.scroll({
top:2500,
left:0,
behavior:'smooth'});// Scroll certain amounts from current position
window.scrollBy({
top:100,// could be negative value
left:0,
behavior:'smooth'});// Scroll to a certain element
document.querySelector('.hello').scrollIntoView({
behavior:'smooth'});

#Accessibility of Smooth Scrolling

Whatever technology you use for smooth scrolling, accessibility is a concern. For example, if you click a #hash link, the native behavior is for the browser to change focus to the element matching that ID. The page may scroll, but the scrolling is a side effect of the focus changing.

If you override the default focus-changing behavior (which you have to, to prevent instant scrolling and enable smooth scrolling), you need to handle the focus-changing yourself.

#Smooth Scroll with jQuery

jQuery can also do this. Here’s the code to perform a smooth page scroll to an anchor on the same page. It has some logic built in to identify those jump links, and not target other links.