我正在barba JS
我的React
网站上实施,但似乎无法让文件在页面上工作。作为参考,我的文件夹结构如下:
theme
pages
Homepage.js
Contact.js
utils
anim.js
helpers.js
index.js
在我的index.js
文件上,我正在尝试使用import
我的anim.js
脚本,以便将文件应用于我的所有pages
. 但是,在编译时,我得到一个'delay' is not defined no-undef
错误anim.js
,即使delay
已定义(因为我正在导入gsap
)。
Homepage.js(Contact.js
类似,唯一不同的是data-barba-namespace
)
import React from "react";
import LoadingScreen from "../components/LoadingScreen/LoadingScreen";
import Hero from "../components/Hero/Hero";
class Homepage extends React.Component {
render(){
return (
<>
<LoadingScreen />
<div data-barba="container" data-barba-namespace="home">
<Hero />
</div>
</>
)
}
}
export default Homepage;
动画.js
import { pageTransition, contentAnimation } from "./helpers";
import barba from '@barba/core';
import gsap from "gsap";
barba.init({
sync: true,
transitions: [{
async leave(data){
const done = this.async();
pageTransition();
await delay(1000);
done();
}, async enter(data){
contentAnimation();
}, async leave(data){
contentAnimation();
}}
]
});
helpers.js
export function pageTransition(){
var timeline = gsap.timeline();
timeline.to("loadingScreen",{
duration: 1.2,
width: "100%",
left: "0",
ease: "Expo.easeInOut"
});
timeline.to("loadingScreen",{
duration: 1,
width: "100%",
left: "100%",
ease: "Expo.easeInOut",
delay: 0.3
});
timeline.set(".LoadingScreen", { left: "-100%" } );
}
export function contentAnimation(){
var timeline = gsap.timeline();
timeline.from("animate-this", {
duration: 1,
y: 30,
opacity: 0,
stagger: 0.4,
delay: 0.2
});
}
index.js
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { pageTransition, contentAnimation } from "./utils/helpers";
import { barba } from '../node_modules/@barba/core';
import anim from "./utils/anim";
import "./scss/style.scss";
const root = document.getElementById("root");
ReactDOM.render(<App />, root);
index.html(显示barba
包装器)
<body data-barba="wrapper">
<main id="root"></main>
</body>