我正在研究我的投资组合,并尝试使用 barba.js。但是我无法弄清楚如何做某事:我想像这样布局我的 3 页: page1 -> page2 -> page3 -> page1 具有从右到左的过渡,以及 page1 -> page3 -> page2 -> page1 具有从左到右的过渡,您只需单击一下即可离开网站的任何其他页面。但我不知道如何将路由逻辑告诉 barba。
现在,过渡总是一样的(但至少它们是有效的,所以 barba 是正确实现的)。
这是我的 js 代码:
barba.init({
// debug: true,
transitions: [
{
name: "toRightTransition",
// sync: true,
from: {
namespace: [
"bio",
"index",
"projects"
]
},
to: {
namespace: [
"projects",
"bio",
"index"
]
},
leave(data) {
return gsap.to(data.current.container, { duration: .3, x: window.innerWidth, ease: "power4" });
},
enter(data) {
return gsap.from(data.next.container, { duration: .3, x: -window.innerWidth, ease: "power4" });
},
},
{
name: "toLeftTransition",
// sync: true,
from: {
namespace: [
"bio",
"index",
"projects"
]
},
to: {
namespace: [
"index",
"projects",
"bio"
]
},
leave(data) {
return gsap.to(data.current.container, { duration: .3, x: -window.innerWidth, ease: "power4" });
},
enter(data) {
return gsap.from(data.next.container, { duration: .3, x: window.innerWidth, ease: "power4" });
},
},
],
})
很容易看出问题出在哪里:在每个转换关键字中都有 3 个命名空间,barba 无法确定要为任何给定路由应用哪个转换。
现在摆脱我的“总是单击一下”的想法让事情变得更简单(我只需为每个转换关键字放置两个命名空间,我尝试过它并且它有效),但我真的很想保持这个方向。
关于如何使这项工作的任何想法?