<div class="slider">
<section>
<h1>Section One</h1>
</section>
<section>
<h1>Section Two</h1>
</section>
<section>
<h1>Section Three</h1>
</section>
<section>
<h1>Section Four</h1>
</section>
<section>
<h1>Section Five</h1>
</section>
</div>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
overflow-y: hidden;
}
.slider {
font-family: sans-serif;
scroll-snap-type: x mandatory;
display: flex;
-webkit-overflow-scrolling: touch;
overflow-x: scroll;
}
section {
border-right: 1px solid white;
padding: 1rem;
min-width: 100vw;
height: 100vh;
scroll-snap-align: start;
text-align: center;
position: relative;
}
h1 {
position: absolute;
top: 50%;
transform: translateY(-50%);
text-align: center;
color: white;
width: 100%;
left: 0;
font-size: calc(1rem + 3vw);
}
View Compiled
const init = function(){
let items = document.querySelectorAll('section');
for (let i = 0; i < items.length; i++){
items[i].style.background = randomColor({luminosity: 'light'});
}
cssScrollSnapPolyfill()
}
init();
This Pen doesn't use any external CSS resources.