【发布时间】:2022-02-10 08:02:34
【问题描述】:
在一个简单的设置中,我有两个不同的事情发生。我正在使用以下代码:
className={router.pathname.startsWith("/pagename") ? "menu-active" : ""}
当我们在 pagename 页面上时,将 menu-active 类分配给 pagename nav 链接。
我正在使用
<PageTransition timeout={450} classNames="page-transition">
<Component {...pageProps} key={router.route} />
</PageTransition>
<style jsx global>{`
.page-transition-enter {
opacity: 0;
}
.page-transition-enter-active {
opacity: 1;
transition: opacity 450ms;
}
.page-transition-exit {
opacity: 1;
}
.page-transition-exit-active {
opacity: 0;
transition: opacity 450ms;
}
`}</style>
next-page-transitions 文档页面中的几乎一字不差,页面之间有 450 毫秒的渐变为白色。
这就是问题所在。我使用 menu-active 将活动页面链接的字体样式更改为斜体,并将其颜色更改为橙色。但是当您更改页面时,似乎在转换发生之前应用了该类。换句话说,您甚至可以在淡出为白色之前看到菜单更改。
我想我可以将转换延迟 450 毫秒,然后在淡入淡出完成时发生变化,这对于颜色变化很有效;但不适用于字体样式。由于字体样式不适用于过渡延迟,我正在尝试找出其他方法来延迟此类/样式的应用。
也许我做错了。有什么建议吗?
编辑:明确地说,我绝不会使用next-page-transitions,所以请随意推荐其他东西来做我想做的事。
【问题讨论】:
标签: javascript css reactjs next.js css-transitions