JSFiddle - React, Tailwind, and code Playground
by João Vitor Scheuermann
HTML
<h1>SCROLL TO LEFT OR RIGHT</h1>
<div id="a" class="box"> A </div>
<div id="b" class="box"> B </div>
<div id="c" class="box"> C </div>
SCSS
* {
padding: 0;
margin: 0;
font-size: 12px;
letter-spacing: 6px;
font-family: Roboto-Thin;
box-sizing: border-box;
}
body, html {
width: 100%;
height: 100%;
overflow: hidden;
background: #000;
}
h1 {
margin: 1px 0 0 0;
padding: 10px 0 10px 0;
text-align: center;
background: #fff;
color: #000;
}
.box {
position: relative;
margin: 1px 0 0 0;
padding: 2px;
left: 0;
width: 50px;
height: 50px;
background: #ffffff;
}
JavaScript
const app = {
left: {
min: 0,
max: 1000,
current: 0
},
boxes: document.querySelectorAll('.box')
}
function clamp (value, min, max) {
return value
}
document.addEventListener('mousewheel', e => {
app.left.current += clamp(e.deltaX, app.left.min, app.left.max)
for (let box of app.boxes) {
box.style.left = `${app.left.current}px`
}
})