Maison > Questions et réponses > le corps du texte
P粉2933419692023-09-01 09:20:19
J'ai trouvé une solution. Vous utilisez simplement la fonction useMotionValueEvent pour vérifier si le défilement a dépassé un certain point et le définir comme état, puis vous devez envelopper votre élément enfant (mon image) dans motion.div et également définir la classe dans le div externe comme ci-dessous. :
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> ) }