Rumah > Soal Jawab > teks badan
P粉2933419692023-09-01 09:20:19
Saya jumpa penyelesaian. Anda hanya menggunakan fungsi useMotionValueEvent untuk menyemak sama ada skrol melepasi titik tertentu dan menetapkannya sebagai keadaan, kemudian anda perlu membungkus elemen anak anda (imej saya) dalam motion.div dan juga menetapkan kelas dalam div luar seperti di bawah Paparan :
function Navbar() { const { scrollY } = useScroll(); const [Scrolled, setScrolled] = useState(false); useMotionValueEvent(scrollY, "change", (latest) => { if (latest > 200) { setScrolled(true); } else { setScrolled(false); } }) return ( <div style={{justifyContent: Scrolled? "left" : "center"}} className={styles.icon} > <motion.div layout transition={{type: "spring", stiffness: 700, damping: 30}} > <Image src="/BlackLogo-2.svg" alt="Cg Logo" width={100} height={100} style={{padding: 20,}} priority /> </motion.div> </div> ) }