How to attach an event listener to all div's with the same class name?
In the below example I'm trying to add a class name scroll-x to a div so it can get the horizontal scrolling feature by running the JS code. But the JS code works on only first div.
Here is a pen https://codepen.io/Code3ater/pen/wvGYKvO?editors=0010
const scrollArea = document.querySelector(".scroll-x");
let isDown = false;
let startX;
let scrollLeft;
scrollArea.addEventListener("mousedown", (e) => {
isDown = true;
scrollArea.classList.add("active");
startX = e.pageX - scrollArea.offsetLeft;
scrollLeft = scrollArea.scrollLeft;
});
scrollArea.addEventListener("mouseleave", () => {
isDown = false;
scrollArea.classList.remove("active");
});
scrollArea.addEventListener("mouseup", () => {
isDown = false;
scrollArea.classList.remove("active");
});
scrollArea.addEventListener("mousemove", (e) => {
if (!isDown) return;
e.preventDefault();
const x = e.pageX - scrollArea.offsetLeft;
const walk = (x - startX) * 3; //scroll-fast
scrollArea.scrollLeft = scrollLeft - walk;
});