首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在鼠标滚轮上按1递增,而不考虑滚动?

问如何在鼠标滚轮上按1递增,而不考虑滚动?
EN

Stack Overflow用户
提问于 2020-06-18 13:34:59
回答 2查看 113关注 0票数 0

无论用户鼠标滚轮滚动多长时间,我都会尝试将数字递增1。如果我移动鼠标滚轮一点,它会增加1,但如果我更长时间地使用鼠标滚轮,它就会跳跃。不管怎样,我如何递增1呢?

代码语言:javascript
复制
 const [number, setnumber] = useState(1);
  const listener = e => {
    e.preventDefault();
    setnumber(number + 1);
  };
  useEffect(() => {
    window.addEventListener("wheel", listener);
    return () => {
      window.removeEventListener("wheel", listener);
    };
  });
  return (
    <div className="App">
      <h1>{number}</h1>
      <h2>Number wheel</h2>
    </div>
EN

回答 2

Stack Overflow用户

发布于 2020-06-18 13:42:44

您可以使用stopImmediatePropagation

代码语言:javascript
复制
const [number, setnumber] = useState(1);

  const listener = e => {
    setnumber(number + 1);
    e.stopImmediatePropagation();
  };

  useEffect(() => {
    window.addEventListener("wheel", listener);
  });

  return (
    <div className="App">
      <h1>{number}</h1>
      <h2>Number wheel</h2>
    </div>
  );

codesanbox:https://codesandbox.io/s/elastic-surf-qxerb?file=/src/App.js

PS:但这将使您的代码(更改“数字”的初始数字的能力)在数字更改为“数字+ 1”后不起作用。

票数 0
EN

Stack Overflow用户

发布于 2020-06-18 14:00:45

这似乎是有效的,但有一些滞后。但却能做好这项工作。

代码语言:javascript
复制
export default function App() {
  const [number, setnumber] = useState(1);
  const [isScrolling, setIsScrolling] = useState(null);

  const listener = e => {
    e.preventDefault();
    // Clear our timeout throughout the scroll
    window.clearTimeout(isScrolling);

    // Set a timeout to run after scrolling ends
    setIsScrolling(
      setTimeout(() => {
        // Run the callback
        setnumber(number + 1);
      }, 50)
    );
  };

  useEffect(() => {
    window.addEventListener("wheel", listener);
    return () => {
      window.removeEventListener("wheel", listener);
    };
  });
  return (
    <div className="App">
      <h1>{number}</h1>
    </div>
  );
}

CodeSandbox Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62443037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档