簡體   English   中英

無法讀取 scrollY 的值

[英]Not been able to read the value of scrollY

我一直在嘗試讀取 scrollY 的值(chrome 版本 96.0.4664.45(官方構建)(64 位))。 但這似乎不起作用。 這是我的代碼:

import React from "react";

import{useEffect, useState} from "react"


 
export default function Test() {
  const [offset, setOffset] = useState(0);
  const setScroll = () => {
    setOffset(window.scrollY);
  };

    useEffect(() => {
    window.addEventListener("scroll", setScroll);
    return () => {
      window.removeEventListener("scroll", setScroll);
    };
  }, []);

  return (
    <div className="App" style={{ height: "1000px" }}>
      <h1>Hello CodeSandbox</h1>
      <div>{offset}</div>
      
    </div>
  );
}

這是 output 的圖片: 在此處輸入圖像描述

在此處輸入圖像描述

這是您在問題片段中提供的相同代碼(它有效)。 我只是將scroll事件目標從windowdocument 有關文檔滾動事件,請參見 MDN 頁面: https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event

 <div id="root"></div><script src="https://unpkg.com/react@17.0.2/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.development.js"></script><script src="https://unpkg.com/@babel/standalone@7.16.4/babel.min.js"></script> <script type="text/babel" data-type="module" data-presets="react"> const {useEffect, useState} = React; function Test () { const [offset, setOffset] = useState(0); const setScroll = () => setOffset(window.scrollY); useEffect(() => { document.addEventListener("scroll", setScroll); return () => document.removeEventListener("scroll", setScroll); }, []); return ( <div style={{ height: "1000px" }}> <h1>Hello CodeSandbox</h1> <div style={{ position: 'sticky', top: '1rem' }}>{offset}</div> </div> ); } ReactDOM.render(<Test />, document.getElementById('root')); </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM