Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why is the parent scroll event getting triggered , when scrolling inside child,

From what I know scroll event doesn’t get bubbled to the parent and only bubbles document itself then why parent scroll event is getting fired,

import { useEffect, useRef } from "react";
import "./styles.css";

export default function App() {
  const refParent = useRef(null);
  const refChild = useRef(null);
  useEffect(() => {
    function handleParent() {
      console.log("Parent");
    }
    function handleChild() {
      console.log("Child");
    }
    if (refParent && refChild) {
      refParent.current.addEventListener("mousewheel", handleParent);
      refChild.current.addEventListener("mousewheel", handleChild);
    }
    return () => {
      refParent.current.removeEventListener("mousewheel", handleParent);
      refChild.current.removeEventListener("mousewheel", handleChild);
    };
  });
  return (
    <div
      style={{ width: "400px", height: "200px", background: "red" }}
      ref={refParent}
    >
      <div
        style={{ width: "100px", height: "100px", overflow: "auto" }}
        ref={refChild}
      >
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas, dolorum
        nisi, debitis optio magnam perferendis similique delectus incidunt alias
        eum dignissimos est quis assumenda doloribus rem deserunt tempora eos
        reiciendis!Lorem ipsum dolor sit amet consectetur adipisicing elit.
        Quas, dolorum nisi, debitis optio magnam perferendis similique delectus
        incidunt alias eum dignissimos est quis assumenda doloribus rem deserunt
        tempora eos reiciendis! Lorem ipsum dolor sit amet consectetur
        adipisicing elit. Quas, dolorum nisi, debitis optio magnam perferendis
        similique delectus incidunt alias eum dignissimos est quis assumenda
        doloribus rem deserunt tempora eos reiciendis!Lorem ipsum dolor sit amet
        consectetur adipisicing elit. Quas, dolorum nisi, debitis optio magnam
        perferendis similique delectus incidunt alias eum dignissimos est quis
        assumenda doloribus rem deserunt tempora eos reiciendis!
      </div>
    </div>
  );
}

here is the live example https://codesandbox.io/s/runtime-silence-lxi1jb?file=/src/App.js

Thanks

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

It’s because you are using the mousewheel event and not the scroll event. The mousewheel event will bubble and is just saying did the user issue a command to their machine to attempt a scroll. It’s like onClick but for the mouse wheel.

You meant to use the scroll event which means "did this frame move scroll position".

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading