javascript - 在 Gatsby 中添加预加载器

标签 javascript jquery gatsby

我有一个组件Preloader它负责预加载器,这意味着该预加载器将弹出 2 秒并打开页面窗口。

我希望每次我的路线改变时都会弹出这个,例如我访问 /blog页面,因此它必须在加载页面之前首先渲染或加载该页面。

我所做的是我去了gatsby-browser.js然后调用以下内容:

  export const onPreRouteUpdate = () => {
    return <Preloader />
  }
  

这个没用。我的代码由以下部分组成:

import React from 'react'

 const Preloader = () => {
    return (
        <div id="loader-wrapper">
        <div id="loader"></div>
        <div className="loader-section section-left"></div>
        <div className="loader-section section-right"></div>
    </div>
    )
}

export default Preloader

这个简单的脚本:

   /* preloader */
    setTimeout(function(){
        $('body').addClass('loaded');
        $('h1').css('color','#222222');
    }, 1000);

如何在每次路线改变时加载它?

最佳答案

您应该只添加 <Preloader />到您的布局然后使用 onPreRouteUpdate隐藏它。

gatsby-browser.js

export const onPreRouteUpdate = () => {
    setTimeout(() => {
        document.getElementById("loader-wrapper").style.display = "none"
    }, 1000)
}

关于javascript - 在 Gatsby 中添加预加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64460441/

相关文章:

javascript - 为什么宽度为 : 0 doesn't work

javascript - 基于 SVG 的 UI 是可用的和/或可行的选项吗?

javascript - 滚动到 id 函数 jQuery

mysql - 如何提高静态网站的 WordPress GraphQL 服务器的效率

javascript - 如何找出应用了哪些样式表(通过 javascript 检查)?

javascript - 除了数组中的数字之外,我有多个具有相同代码的函数。这段代码可以是 DRY-er 吗?

javascript - 使用 HTML 表单发送跨域 HTTP Post

jQuery Mobile 滑动事件

reactjs - 客户端无法访问gatsby环境变量

graphql - GraphQL 的多语言支持