Nextjs + react-transition-group 没有动画
Nextjs + react-transition-group don't animate
我在使用 nextjs + react-animation-group 时遇到了麻烦,我已经按照文档进行实施但不起作用,我需要在 2.5 秒内将不透明度从 0 变为 1 的组件进行动画处理。这是我的测试:
https://codesandbox.io/s/transition-group-u5htd
你可以看到 "Animation div" 立即出现而不是不透明过渡,有什么解决办法吗?
谢谢大家
您的 CSSTransition
标签需要 appear={true}
并添加 css 以显示有效。我认为与其在 <style jsx global>
标签中写入 css,不如定义一个新的 css 文件并将其导入
.div-appear {
opacity: 0.01;
}
.div-appear-active {
opacity: 1;
transition: all 10000ms ease-out;
}
你可以在这里查看CodeSandBox,希望对你有帮助:)
试试这个:-
pages/_app.js
export default function MyApp({ Component, pageProps, router }) {
return (
<SwitchTransition mode='out-in'>
<CSSTransition key={router.pathname} classNames='page' timeout={300}>
<Component {...pageProps} />
</CSSTransition>
</SwitchTransition>
);
}
global.css
.page-enter {
opacity: 0;
transform: scale(1.1);
}
.page-enter-active {
opacity: 1;
transform: scale(1);
transition: opacity 300ms, transform 300ms;
}
.page-exit {
opacity: 1;
transform: scale(1);
}
.page-exit-active {
opacity: 0;
transform: scale(0.9);
transition: opacity 300ms, transform 300ms;
}```
我在使用 nextjs + react-animation-group 时遇到了麻烦,我已经按照文档进行实施但不起作用,我需要在 2.5 秒内将不透明度从 0 变为 1 的组件进行动画处理。这是我的测试:
https://codesandbox.io/s/transition-group-u5htd
你可以看到 "Animation div" 立即出现而不是不透明过渡,有什么解决办法吗?
谢谢大家
您的 CSSTransition
标签需要 appear={true}
并添加 css 以显示有效。我认为与其在 <style jsx global>
标签中写入 css,不如定义一个新的 css 文件并将其导入
.div-appear {
opacity: 0.01;
}
.div-appear-active {
opacity: 1;
transition: all 10000ms ease-out;
}
你可以在这里查看CodeSandBox,希望对你有帮助:)
试试这个:-
pages/_app.js
export default function MyApp({ Component, pageProps, router }) {
return (
<SwitchTransition mode='out-in'>
<CSSTransition key={router.pathname} classNames='page' timeout={300}>
<Component {...pageProps} />
</CSSTransition>
</SwitchTransition>
);
}
global.css
.page-enter {
opacity: 0;
transform: scale(1.1);
}
.page-enter-active {
opacity: 1;
transform: scale(1);
transition: opacity 300ms, transform 300ms;
}
.page-exit {
opacity: 1;
transform: scale(1);
}
.page-exit-active {
opacity: 0;
transform: scale(0.9);
transition: opacity 300ms, transform 300ms;
}```