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`
  }  
})