【发布时间】:2021-05-31 21:56:02
【问题描述】:
import Head from 'next/head'
import styles from '../styles/Home.module.css'
import Image from 'next/image'
import React, { useRef ,useEffect, useState } from 'react';
export default function Home() {
let ref = useRef()
const [offset, setOffset] = useState();
// const handleScroll = () => onScroll()
// const handleScroll = () => setOffset(window.pageYOffset)
useEffect(() => {
window.addEventListener("scroll", handleScroll)
return ()=> window.removeEventListener("scroll", handleScroll)
}, []);
// console.log(useEffect);
return (
<div className={styles.container}>
<div className={styles.section}>
<Head>
<title>Parallax Effect</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<Image className={styles.bg}
src="/../public/bg.jpg"
// width={2049}
// height={2049}
// objectFit="cover"
layout="fill"
quality={100}
/>
<Image className={styles.moon}
src="/../public/moon.png"
// width={2049}
// height={1152}
// objectFit="cover"
layout="fill"
quality={100}
onScroll={useEffect}
// style={{ transform: `translateY(${offset * 0.5}px)` }}
/>
<Image className={styles.mountain}
src="/../public/mountain.png"
// width={2049}
// height={1152}
// objectFit="cover"
layout="fill"
quality={100}
/>
<Image className={styles.road}
src="/../public/road.png"
// width={2049}
// height={1152}
// objectFit="cover"
layout="fill"
quality={100}
/>
<h2 className={styles.text}>Moon Light</h2>
</div>
</div>
)
}
有人可以帮我处理上面的代码吗,我试图让图像在滚动时“移动”,但我无法理解其背后的逻辑。 我是 React 和 NextJS 的新手。
- 每当用户滚动到底部每 10 像素时,我都会尝试将月亮向左移动
- 当用户滚动时,我需要 h2 标题在 road.png 下滚动。
- 蓝色的天空和山脉保持静止,因为上述图像当前在事件监听器中滚动时处于活动状态。
【问题讨论】:
标签: javascript event-handling next.js dom-events parallax