Nuxt 在页面转换之前向上滚动
Nuxt scroll up before page transition
我已经创建了一个在路线变化之间 运行 的过渡:
.page-enter-active {
position: absolute;
width: 100%;
//max-height: 100vh;
overflow: hidden;
animation: slideScaleRight 2s ease;
}
.page-leave-active {
position: absolute;
width: 100%;
//max-height: 100vh;
overflow: hidden;
animation: scaleSlideRight 2s ease;
}
@keyframes scaleSlideRight {
0% {
transform: scale(1);
}
33% {
transform: scale(0.75) translateX(0);
opacity: 0.5;
}
66% {
transform: scale(0.75) translateX(150%);
}
100% {
transform: scale(0.75) translateX(150%);
}
}
@keyframes slideScaleRight {
0% {
transform: scale(0.75) translateX(-150%);
}
33% {
transform: scale(0.75) translateX(-150%);
}
66% {
opacity: 0.5;
transform: scale(0.75) translateX(0);
}
100% {
transform: scale(1) translateX(0);
}
}
过渡运行 很顺利,但我发现如果页面不在顶部位置,在离开之前,nuxt 会强制滚动到顶部,这让体验非常糟糕...
我猜 nuxt 在触发转换之前向上滚动,我真的很想在离开之前将页面保持在原处。
有什么想法吗?
您可以在上页设置scrollToTop: false
(甚至在/layouts/default.vue
?)以防止页面滚动,如the documentation。
如果您想要更详细的信息,您还可以查看 scrollBehavior。
我已经创建了一个在路线变化之间 运行 的过渡:
.page-enter-active {
position: absolute;
width: 100%;
//max-height: 100vh;
overflow: hidden;
animation: slideScaleRight 2s ease;
}
.page-leave-active {
position: absolute;
width: 100%;
//max-height: 100vh;
overflow: hidden;
animation: scaleSlideRight 2s ease;
}
@keyframes scaleSlideRight {
0% {
transform: scale(1);
}
33% {
transform: scale(0.75) translateX(0);
opacity: 0.5;
}
66% {
transform: scale(0.75) translateX(150%);
}
100% {
transform: scale(0.75) translateX(150%);
}
}
@keyframes slideScaleRight {
0% {
transform: scale(0.75) translateX(-150%);
}
33% {
transform: scale(0.75) translateX(-150%);
}
66% {
opacity: 0.5;
transform: scale(0.75) translateX(0);
}
100% {
transform: scale(1) translateX(0);
}
}
过渡运行 很顺利,但我发现如果页面不在顶部位置,在离开之前,nuxt 会强制滚动到顶部,这让体验非常糟糕...
我猜 nuxt 在触发转换之前向上滚动,我真的很想在离开之前将页面保持在原处。
有什么想法吗?
您可以在上页设置scrollToTop: false
(甚至在/layouts/default.vue
?)以防止页面滚动,如the documentation。
如果您想要更详细的信息,您还可以查看 scrollBehavior。