代码实现
import { useEffect, useRef, useState } from 'react';const DynamicPositionTracker = () => {const [distance, setDistance] = useState(0);const divRef = useRef(null);useEffect(() => {const targetDiv = divRef.current;if (!targetDiv) return;const calculate = () => {const rect = targetDiv.getBoundingClientRect();const scrollTop = window.pageYOffset;setDistance(rect.top + scrollTop);};calculate();const resizeObserver = new ResizeObserver(calculate);resizeObserver.observe(targetDiv);window.addEventListener("scroll", calculate);return () => {resizeObserver.disconnect();window.removeEventListener("scroll", calculate);};}, []);return (<div ref={divRef}>当前距离顶部: {distance}px</div>);
};