【问题标题】:Delaying route change in Gatsby延迟盖茨比的路线变更
【发布时间】:2020-07-02 03:00:55
【问题描述】:

有没有办法延迟 Gatsby 中的路线变更?在淡入新页面之前,我会使用它来淡出页面。我正在使用 gatsby-browser api 执行此操作。淡入新页面效果很好,但是淡出旧页面就不行了。

【问题讨论】:

    标签: gatsby page-transition


    【解决方案1】:

    完全不知道您尝试过什么以及如何实现淡入效果。我建议另一种方法,这是我一直用来创建页面转换(淡入、淡出和其他)的方法:使用gatsby-plugin-transition-link

    它允许您创建自定义动画或使用一些默认或预定义的动画,您可以查看其演示站点here,其中有一些过渡的示例。

    对于预定义的过渡(最简单的方法),您只需要导入 de 组件并像这样使用它:

    import AniLink from "gatsby-plugin-transition-link/AniLink"
    
    <AniLink paintDrip to="page-2">
      Go to Page 2
    </AniLink>
    

    对于自定义转场,需要定义deentry并退出effect,如:

    <TransitionLink
      exit={{
        length: length,
        trigger: ({ exit, node }) =>
          this.someCustomDefinedAnimation({ exit, node, direction: "out" }),
      }}
      entry={{
        length: 0,
        trigger: ({ exit, node }) =>
          this.someCustomDefinedAnimation({ exit, node, direction: "in" }),
      }}
      {...props}
    >
      {props.children}
    </TransitionLink>
    

    欲了解更多信息,请查看他们的docs

    此外,gatsby-page-transitions 有很多插件,但它们通常具有最肮脏和更复杂的集成,反馈也更少(就全球下载而言)。

    【讨论】:

    • 感谢费兰的回复。我以前使用过 gatsby-plugin-transition-link ,但对于简单的页面转换来说,这似乎需要付出很多努力。所以我开始着手构建一个没有插件的简单过渡。结果可以在这里看到:github.com/wernerglinka/gatsby-starter-square1/blob/master/… 如果我可以延迟路由更改以便正确执行淡出,这可以得到改善。
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2019-08-07
    • 1970-01-01
    • 2021-12-14
    • 2022-08-19
    • 2019-04-02
    相关资源
    最近更新 更多