Gal*_*sod 5 javascript animation reactjs next.js aos.js
我想知道如何在Next.Js 13中正确实现滚动触发的动画。
我尝试使用像AOS这样的滚动触发动画库,但为了使其工作,需要在 useEffect 挂钩内初始化它,这需要客户端渲染。现在,如果我只将它用于一个组件(并且仅用于通过“使用客户端”声明客户端渲染的该组件),那么所有这些都可以,但这不是一个选项,因为我想让 AOS 可以跨我的整个应用程序,以便页面的所有组件和部分都可以使用它,因此,这意味着,如果我做对了,所有内容都将使用客户端渲染(因为我在根处声明(为了能够使用useEffect)),这不是我想要的。
有没有更好的方法来实现这一点,或者我只是以错误的方式理解这一点?我是 Next.Js 的新手,所以如果这个问题更“愚蠢”,我很抱歉,但我找不到或找出答案,所以我决定在这里问它。我很高兴听到您的回答。:)
小智 1
我能够通过这样做来使其工作:
import { useEffect } from 'react';
import AOS from "aos";
import "aos/dist/aos.css";
export default function AOSComponent({
children,
}: {
children: React.ReactNode
}) {
useEffect(() => {
AOS.init()
}, [])
return <>{children}</>
}
Run Code Online (Sandbox Code Playgroud)
'use client'
...
import AOSComponent from '@/components/AOS';
export default function Home() {
return (
<AOSComponent>
<div>
Homepage
</div>
</AOSComponent>
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1396 次 |
| 最近记录: |