javascript - Gsap fungerer ikke korrekt med typescript
Jeg skriver en app i nuxt.js med ssr-rendering. Jeg har et problem med gsap. Jeg bruger typescript, og når jeg prøver at bruge timeline.staggerTo() metoden, får jeg en fejl om, at egenskaben staggerTo() ikke findes på TimelineMax-typen.
Hvordan jeg bruger gsap: Jeg har installeret det med yarn add gsap, og så har jeg importeret TimelineMax fra "gsap"
det er alt
to() virker for eksempel, men staggerTo/from gør ikke. Sandsynligvis er der ingen definition for det. Ved nogen, hvad jeg kan gøre for at fixe/omgå det?
Mange tak for hjælpen <3
noget kode
import Vue from "vue";
import { TweenMax, gsap, TimelineMax } from "gsap";
export default Vue.extend({
mounted() {
const timeline = new TimelineMax();
timeline
.fromTo(
".header__subtitle",
1,
{ opacity: 0, translateY: -30 },
{ opacity: 1, translateY: 0 }
)
.staggerFrom(); //Property 'staggerFrom' does not exist on type 'TimelineMax'.Vetur(2339)
}
});
Svar #1
Jeg gætter på, at du ikke bruger en version af GSAP 3, der har de nyeste Typescript-deklarationer. Typescript-definitionerne, der følger med GSAP, fik en stor forbedring i version 3.3. Brug ikke @types-deklarationerne, da de er ekstremt gamle og forældede. Jeg tror, at opgradering af din GSAP-version og afinstallation af @types-deklarationerne burde løse dit problem, fordi TimelineMax er en bekvemmelighed for .timeline() i GSAP 3.
Med det sagt anbefaler vi hos GreenSock, at du bruger GSAP 3-formattering. Jeg ville formatere din kode således:
import Vue from "vue";
import { gsap } from "gsap";
export default Vue.extend({
mounted() {
const timeline = gsap.timeline()
.fromTo(".header__subtitle", {
opacity: 0,
translateY: -30
}, {
duration: 1,
opacity: 1,
translateY: 0,
stagger: 0.2
})
}
});
For mere information om stagger, se stagger-dokumentationen.
Til orientering er du mere tilbøjelig til at få et hurtigere svar på GreenSock-forummerne.
Svar #2
Okay, så for at skabe stagger skal du bare tilføje {stagger: 0.1} i fromVars/toVars
hav en god dag :)
