我正在尝试在Vue 3中使用vue router进行页面转换
This image sums up what I'm trying to do
我正在建立一个网站,不同的页面(在图像上:蓝色区域),都有一个滚动和一个共同的固定导航栏在顶部。如果你点击顶部栏的链接之一,它应该移动整个页面容器底部的100vh,以揭示一个特殊的视图(在图像上:红色区域)
我的问题
- 由于黄色条是固定的,我没有设法让它离开蓝色页面,它保持固定在y:0
- 我想避免笨拙的东西,如快速添加beforeRouteLeave一个位置:绝对顶部的导航栏和补偿的顶部位置的基础上滚动位置。
- 我并没有真正设法使两个视图在彼此的顶部,这样蓝色页面就可以显示已经在正确位置的红色页面。
- 我不知道该怎么办
几天来我一直在尝试不同的东西: - 在App.vue中的单个视图包含蓝色视图和红色视图。没有运气。
- 在App.vue中有两个不同的。没有运气。
- 各种级别的绝对 Package ,溢出隐藏,给定100vh值等.没有运气
我的问题 - 你知道我应该如何分割不同的部分吗?(应用程序, Package 器,子 Package 器,裁剪器,...)
- 一个人能做到吗?
- 它能在没有超级笨拙的JS的情况下完成路线改变吗?
感谢您的阅读
1条答案
按热度按时间vuktfyat1#
我希望这个想法可以帮助你。
因为页面只是一个在重定向时改变的组件,所以你可以创建一个包含两个页面的页面。例如,根据你的图片,我有两个页面(
Red
和Blue
)。然后,我将创建Merge
,其中包含Red
和Blue
这是
Red.vue
字符串
这是
Blue.vue
型
这是
Merge.vue
型
把
Red
和Blue
都放在Merge
里面,然后用<Transition/>
包裹Blue
,这样就可以给Blue
加上过渡,让它滑下来露出Red
,最后在Red
和Blue
里面,尝试重定向的时候发出一些信号详细信息:https://stackblitz.com/edit/vue-fyebnk
在这个例子中,我让
Blue
在转到Red
时向下滑动,从Red
返回到Blue
时向上滑动。在
Blue
中,当你看到Blue
的右侧时,你可以看到Red
被渲染。但是你可以修改它,因为如果用户不打算使用它,首先加载Red
可能会浪费时间。当然,只有当您单击
Blue
或Red
内部的链接时,才会发生转换。任何其他重定向方法都会立即显示Blue
或Red
此外,如果图书馆是一条路要走。我认为你应该看看RevealJS或sli.dev
祝你好运