Dev Tips: JavaScript: Native Smooth Scrolling ⚡️

Dev Tips

 

JavaScript: Native Smooth Scrolling


A quick note from me


I'll be doing a Smashing Workshop on Testing + Browser Automation, please check it out, or their other workshops.  They've been doing some amazing work recently!


Introduction

You can smooth scroll to an element with zero dependencies. You can achieve this programmatically in JavaScript, and you can also enable smooth scrolling from CSS. Browser support is good!
 

Using JavaScript

To do this programmatically through JavaScript, use this code:

el.scrollIntoView({
    behavior: 'smooth'
})

There's actually two interesting things about that code above, yes you can smooth scroll, but secondly, turns out there's a built in method for scrolling an element into the viewport.
 

Using plain CSS

Depending on your use case, you might be able to avoid JavaScript entirely, and achieve this through CSS only:

html {
    scroll-behavior: smooth;
}

This does not affect manual scrolling performed by the user, but it will impact for example, an internal link on a page such a back to top hyperlink:

<!--
    This smooth scrolls to the top
    thanks to scroll-behavior: smooth
-->
<a href="#top">Back to top</a>

Browser support

Browser support is pretty good, but there are some limitations with Safari:


Users who prefer reduced motion

Consider using the CSS media feature: prefers-reduced-motion to toggle the 'smooth' option since not everyone wants heavy animations/transitions on a website.

@media (prefers-reduced-motion) {
    .animation {
        animation-name: none;
    }
}

As a reminder, prefers reduced motion does not mean no motion, so consider that point when altering your user experience for such users.

Here's the documentation for prefers-reduced-motion.

You can Emulate this CSS Media Feature from the Chrome DevTools Command Palette to make sure your media queries are working as expected:

  1. Use the shortcut Cmd + Shift + P
  2. Search for: reduced-motion
  3. Hit enter
Using DevTools to emulate prefers-reduced-motion


Conclusion

Hope you've learnt something new. JavaScript has lots of interesting features which aren't always obvious. If you want to look further, note that you can Automatically remove an event listener after it has executed.


See this tip online: umaar.com/dev-tips/235-smooth-scroll-into-view
 
Email Marketing Powered by Mailchimp

Copyright © 2020 Umar, All rights reserved.
You are receiving this email because you signed up for Dev Tips.

unsubscribe from this list    update subscription preferences 

Older messages

Dev Tips: DevTools: Customise Your User Agent

Thursday, July 30, 2020

Dev Tips DevTools: Customise Your User Agent Introduction You can set a custom user agent in the Network Overrides Pane. If for example, a website changes its behaviour based on the user agent (a

Dev Tips: DevTools: Tips for changing values in HTML & CSS

Thursday, July 23, 2020

Dev Tips DevTools: Tips for changing values in HTML & CSS Introduction You can easily change numeric values in DevTools. This is a handy feature for when you want to quickly prototype CSS property

Dev Tips: DevTools:️ How deactivated CSS styles works

Thursday, July 16, 2020

Dev Tips DevTools: How copying and pasting deactivated CSS styles works DevTools has some small, yet handy features when it comes to dealing with styles. If you copy some deactivated style rules, they

DevTools: Improve accessibility by emulating vision deficiencies

Friday, July 10, 2020

Dev Tips Chrome DevTools: Improve page accessibility by emulating vision deficiencies Web developer tooling to improve accessibility has improved rapidly over the years. Emulating vision deficiencies

Dev Tips: JavaScript: ⚡️ Improve the performance of your event listeners

Wednesday, July 1, 2020

Dev Tips I've been blogging more on my website, go and check it out! JavaScript: Improve the performance of your event listeners In your JavaScript code, you can automatically remove an event

You Might Also Like

Import AI 399: 1,000 samples to make a reasoning model; DeepSeek proliferation; Apple's self-driving car simulator

Friday, February 14, 2025

What came before the golem? ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Defining Your Paranoia Level: Navigating Change Without the Overkill

Friday, February 14, 2025

We've all been there: trying to learn something new, only to find our old habits holding us back. We discussed today how our gut feelings about solving problems can sometimes be our own worst enemy

5 ways AI can help with taxes 🪄

Friday, February 14, 2025

Remotely control an iPhone; 💸 50+ early Presidents' Day deals -- ZDNET ZDNET Tech Today - US February 10, 2025 5 ways AI can help you with your taxes (and what not to use it for) 5 ways AI can help

Recurring Automations + Secret Updates

Friday, February 14, 2025

Smarter automations, better templates, and hidden updates to explore 👀 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

The First Provable AI-Proof Game: Introducing Butterfly Wings 4

Friday, February 14, 2025

Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? undefined The Market Today #01 Instagram (Meta) 714.52 -0.32%

GCP Newsletter #437

Friday, February 14, 2025

Welcome to issue #437 February 10th, 2025 News BigQuery Cloud Marketplace Official Blog Partners BigQuery datasets now available on Google Cloud Marketplace - Google Cloud Marketplace now offers

Charted | The 1%'s Share of U.S. Wealth Over Time (1989-2024) 💰

Friday, February 14, 2025

Discover how the share of US wealth held by the top 1% has evolved from 1989 to 2024 in this infographic. View Online | Subscribe | Download Our App Download our app to see thousands of new charts from

The Great Social Media Diaspora & Tapestry is here

Friday, February 14, 2025

Apple introduces new app called 'Apple Invites', The Iconfactory launches Tapestry, beyond the traditional portfolio, and more in this week's issue of Creativerly. Creativerly The Great

Daily Coding Problem: Problem #1689 [Medium]

Friday, February 14, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Google. Given a linked list, sort it in O(n log n) time and constant space. For example,

📧 Stop Conflating CQRS and MediatR

Friday, February 14, 2025

​ Stop Conflating CQRS and MediatR Read on: m​y website / Read time: 4 minutes The .NET Weekly is brought to you by: Step right up to the Generative AI Use Cases Repository! See how MongoDB powers your