Barba JS滚动位置

时间:2020-07-14 08:24:56

标签: javascript barbajs

我是barba.js的新手,所以只是想弄清楚它。

执行页面转换后,我的浏览器页面滚动将保持原样。这是故意的吗?

是否有可能在转换后像往常一样将下一页加载到顶部?

这是我的代码

function pageTransition() {
  var tl = gsap.timeline();

  tl.to('ul.transition li', { duration: .5, scaleY: 1, transformOrigin: "top left", stagger: .2 })
  tl.to('ul.transition li', { duration: .5, scaleY: 0, transformOrigin: "top left", stagger: .1, delay: .1})
}

function contentAnimation() {
  var tl = gsap.timeline();

  tl.from('.hero', { duration: 1, translateY: 50, opacity: 0 })
}

function delay(n){
  n = n || 2000;
  return new Promise(done => {
    setTimeout(() => {
      done();
    }, n)
  });
}

barba.init({
  sync: true,

  transitions: [{
    async leave(data) {
      const done = this.async();

      pageTransition();
      await delay(500);
      done();
    },
    async enter(data) {
      contentAnimation();
    },
    async once(data) {
      contentAnimation();
    }
  }]
});

1 个答案:

答案 0 :(得分:1)

再次检查文档后,我发现了这些钩子。

barba.hooks.enter(() => {
  window.scrollTo(0, 0);
});

如果其他任何人遇到相同的问题,这将解决该问题。