You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React页面如何引入本地脚本及barba.js运行delay未定义报错解决

问题根因&修复步骤

1. 直接解决delay is not defined报错

你导入GSAP后并不会全局暴露delay方法,可二选一处理:

  • 方案一:在anim.js顶部手动封装delay工具函数
// anim.js 新增这行
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))
  • 方案二:直接使用GSAP自带的delayedCall方法,替换anim.js里的leave钩子逻辑
// 把await delay(1000); done(); 替换成
await gsap.delayedCall(1, done)

另外注意你当前anim.js的transitions里重复写了两次leave钩子,删掉多余的那个,避免逻辑冲突。

2. 修复其他隐性报错

  • helpers.js没有导入GSAP,顶部补充引入:
import gsap from "gsap"
  • helpers.js里的选择器写法错误,缺少类名前缀:
    把timeline.to("loadingScreen"改成timeline.to(".LoadingScreen"
    把timeline.from("animate-this"改成对应要动效元素的正确选择器,比如.animate-this

3. 修正barba初始化逻辑

  • 你已经在anim.js里完成了barba的导入和初始化,index.js里不需要重复导入barba、pageTransition、contentAnimation
  • anim.js没有默认导出,index.js里的import anim from "./utils/anim"改成import "./utils/anim"
  • 要确保React DOM完全挂载后再初始化barba,调整index.js的渲染逻辑:
ReactDOM.render(<App />, root, () => {
  // 确保DOM加载完成后再执行barba初始化
  import("./utils/anim")
});

内容的提问来源于stack exchange,提问作者Freddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:45:03