<div id="wrapper">
<div id="scroller">
<div id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum pretium mi felis, pharetra ornare lorem pellentesque pulvinar. Donec varius condimentum nunc at mollis. Pellentesque posuere et quam eu tristique. Integer interdum enim non interdum mattis. Suspendisse gravida nibh enim, non efficitur lacus suscipit quis. Etiam pharetra libero auctor ultricies ornare. Duis dapibus semper semper. Nam sit amet lobortis arcu.</p>
<p>Maecenas fermentum risus quis justo convallis, non ornare erat fringilla. Cras eleifend leo sapien, ac iaculis orci ultricies sed. Praesent ultrices accumsan risus, pharetra pharetra lorem dignissim id. Aenean laoreet fringilla eros, vel luctus eros luctus sed. Nullam fermentum massa sit amet arcu dictum, nec bibendum lectus porta. Duis pellentesque dui sed nisi ultricies, vitae feugiat dui accumsan. Nam sollicitudin, ex et viverra ultricies, justo metus porttitor quam, quis vestibulum nibh nisl eget leo.</p>
<p>Integer luctus arcu et sapien accumsan fringilla. Integer mollis tellus vel imperdiet elementum. Ut consequat ac nibh ac sagittis. Duis neque purus, pellentesque nec erat id, pharetra ornare sapien. Etiam volutpat tincidunt nunc ac facilisis. Aenean sed purus pellentesque, vehicula mauris porta, fringilla nibh. Ut placerat, risus et congue rutrum, lorem arcu aliquet urna, sollicitudin venenatis lorem eros et diam. Aliquam sodales ex risus, ac vulputate ipsum porttitor vel. Pellentesque mattis nibh orci. Morbi turpis nulla, tincidunt vitae tincidunt in, sodales et arcu. Nam tincidunt orci id sapien venenatis porttitor ut eu ipsum. Curabitur turpis sapien, accumsan eget risus et, congue suscipit ligula.</p>
<p>Maecenas felis quam, ultrices ac ornare nec, blandit at leo. Integer dapibus bibendum lectus. Donec pretium vehicula velit. Etiam eu cursus ligula. Nam rhoncus diam lacus, id tincidunt dui consequat id. Ut eget auctor massa, quis...
CSS
body {
background: whitesmoke;
}
#wrapper {
width: 350px;
height: 350px;
margin: 2em auto;
box-shadow: 0 0 15px 5px rgba(255, 255, 255, 0);
}
#scroller {
/* fill parent */
display: block;
width: 100%;
height: 100%;
}
#content {
display: block;
width: 500px;
height: auto;
padding: 0;
}
#scroller {
/* The background-color of the scrollbar cannot be transitioned.
To work around this, we set and transition the property
of the wrapper and just set the scrollbar to inherit its
value. Now, when the the wrapper transitions that property,
so does the scrollbar. However, if we set a background-color,
this color shows up in the wrapper as well as the scrollbar.
Solution: we transition the border-color and add a border-right
to the scrollbar that is as large as the viewport. */
border-color: rgba(0, 0, 0, 0.0);
transition: border-color 0.75s linear;
/* make this element do the scrolling */
overflow: auto;
}
#scroller:hover {
border-color: rgba(0, 0, 0, 0.15);
}
#scroller::-webkit-scrollbar,
#scroller::-webkit-scrollbar-thumb {
/* add border to act as background-color */
border-right-style: inset;
/* sum viewport dimensions to guarantee border will fill scrollbar */
border-right-width: calc(100vw + 100vh);
/* inherit border-color to inherit transitions */
border-color: inherit;
}
#scroller::-webkit-scrollbar {
width: 0.5rem;
height: 0.5rem;
/* we can hide the track like this: */
border-color: transparent;
}
#scroller::-webkit-scrollbar-thumb {
border-color: inherit;
border-radius: 1rem;
}
#scroller::-webkit-scrollbar-thumb:hover {
border-color: rgba(0, 0, 0, 0.25);
}
#scroller::-webkit-scrollbar-thumb:active {
border-color: rgba(0, 0, 0, .5);
}
Please Whitelist JSFiddle in your content blocker.
Help keep JSFiddle free for always by one of two ways:
Whitelist JSFiddle in your content blocker (two clicks)
Go PRO and get access to additional PRO features →
Join the 4+ million users, and keep the JSFiddle dream alive.
Ad-free
All ads in the editor and listing pages are turned completely off.
Use pre-released features
You get to try and use features (like the Palette Color Generator) months before everyone else.
Fiddle collections
Sort and categorize your Fiddles into multiple collections.
Private collections and fiddles
You can make as many Private Fiddles, and Private Collections as you wish!
Console
Debug your Fiddle with a minimal built-in JavaScript console.