Matthew C.
—You want to hide a page or page element scrollbar while still allowing scrolling; how do you do this? You may want to do this to improve the UI of a page. The page may not need a scrollbar to indicate that a user can scroll down, for example, a gallery of images with a scroll-down indicator icon.
You should try to avoid hiding scrollbars if possible. Hiding a scrollbar is not a good idea in terms of accessibility. Instead of hiding a scrollbar, consider styling it.
You can hide the scrollbar with CSS using the -webkit-scrollbar
CSS pseudo-element:
body::-webkit-scrollbar { display: none; }
This will only work for Blink- and WebKit-based browsers: Chrome, Edge, Opera, Safari, all browsers on iOS, and others.
To hide the scrollbar in Firefox, set the scrollbar-width
CSS property on the <html>
element to “none”:
html { scrollbar-width: none; }
You can also hide the scrollbar using JavaScript. For example, you can create a button to toggle the scrollbar visibility:
<button id="scrollbarToggle"> Toggle Scrollbar </button>
Create two different CSS classes to hide the scrollbar in Blink- and WebKit-based browsers or Firefox:
body.noScrollbarBlinkWebKit::-webkit-scrollbar { display: none; } html.noScrollbarFirefox { scrollbar-width: none; }
You can then add an event listener to the button and toggle the CSS class on or off. The CSS class toggled will depend on the browser:
const scrollbarToggle = document.getElementById("scrollbarToggle"); const { userAgent } = navigator; const isWebkit = /\b(iPad|iPhone|iPod)\b/.test(userAgent) || /WebKit/.test(userAgent) || /Chrome/.test(userAgent) || /Edge/.test(userAgent) || window.MSStream; function toggleScrollbar() { if (!isWebkit) { document.documentElement.classList.toggle("noScrollbarFirefox"); } else if (isWebkit) { document.body.classList.toggle("noScrollbarBlinkWebKit"); } } scrollbarToggle.addEventListener("click", () => { toggleScrollbar(); });
The type of browser is detected using the user agent. Browser detection is generally not recommended.
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
Here’s a quick look at how Sentry handles your personal information (PII).
×We collect PII about people browsing our website, users of the Sentry service, prospective customers, and people who otherwise interact with us.
What if my PII is included in data sent to Sentry by a Sentry customer (e.g., someone using Sentry to monitor their app)? In this case you have to contact the Sentry customer (e.g., the maker of the app). We do not control the data that is sent to us through the Sentry service for the purposes of application monitoring.
Am I included?We may disclose your PII to the following type of recipients:
You may have the following rights related to your PII:
If you have any questions or concerns about your privacy at Sentry, please email us at compliance@sentry.io.
If you are a California resident, see our Supplemental notice.