我试图创建一个元素位置:“固定”,在它滚动到屏幕末尾后,每当它返回到第一个屏幕时,它应该再次获得“相对”位置,但状态正在更改为 true (固定)当它滚动到屏幕末尾但当它向后滚动时,它不会更改为 false (相对)。
const [fixed, setFixed] = useState(() => {
return false;
});
const scrollHandler = () => {
if (window.scrollY > window.innerHeight) {
if (!fixed) {
setFixed(true);
}
} else {
if (fixed) {
setFixed(false);
}
}
};
useEffect(() => {
window.addEventListener("scroll", scrollHandler);
return () => {
window.removeEventListener("scroll", scrollHandler);
};
}, []);
return (
<>
<div
style={{ position: `${fixed ? "fixed" : "relative"}` }}
className={classes.navigationBelt}
></div>
</> );
Run Code Online (Sandbox Code Playgroud)
这是代码解释我将状态命名为“fixed”并将初始值设置为“false”
const [fixed, setFixed] = useState(() => {
return …Run Code Online (Sandbox Code Playgroud)