Hvis du er desperat til å generere vakre rulleanimasjoner i ditt neste prosjekt, så se ikke lenger. ScrollMagic er et JavaScript-bibliotek som hjelper deg med å lage "magiske" rulleinteraksjoner som enkelt reagerer på brukerens nåværende rulleposisjon og utløseranimasjoner eller synkroniserte hendelser.
ScrollMagic har nylig gjennomgått noen store endringer, så her er en rask gjennomgang gjennom å diskutere endringene og forbedringene siden gjenfødelsen.
The ScrollMagic hjemmesideAvhengigheter som var en gang kjernekomponenter av ScrollMagic, som GreenSock (GSAP) og jQuery, er fjernet helt fra biblioteket. Fra 2.0.0 alt som legger til funksjoner på toppen av ScrollMagic blir behandlet som et plugin, og gjør ScrollMagic til et frittstående bibliotek (6KB gzipped)!
Changelog inneholder mange andre fasetter som er justert, bør du velge å dykke dypere. Hvis du ikke har tid, her er en liste som fremhever noen av endringene:
ScrollMagic.Controller ()
ScrollMagic.Scene ()
triggerOffset
pinClass
(dette kan oppnås med setClassToggle
i 2,0)pushfollowers
standardverdien er satt til falsk
Legg til
og fjerne
.forelder
til .kontrolleren
plugins / scene.addIndicators
og kan legges til kontrolleren og fungerer selv når scenene fjernes og legges til igjen.removeIndicators
Performance tweaks forbedrer hastigheten på ScrollMagic ble foreslått av Paul Irish med hensyn til å oppdatere RAF (request animation frame). I stedet for å høre direkte på rullehendelsen, ble en teknikk kalt "debouncing" opprinnelig brukt. Dette betyr at alt som skal utføres på Scroll, faktisk utføres i en timeout (forsinkelse). Når onScroll
hadde blitt utløst det eneste som endret var en variabel som wasScrolled = true
og inspisert for i timeout-funksjonen. Opprinnelig ble debounce-funksjonen kalt RAF og lette stadig etter wasScrolled
Var i en løkke.
Nå, i stedet for en sløyfe, er det bare planlegging å sjekke på neste RAF når en rullehendelse utløses. Alt dette betyr at når ingen rulling skjer, går det ingen løkke!
Responsive varigheter må være en av mine favoritt forbedringer til biblioteket i tillegg til ytelsen øker. De scene
Varighet kan nå akseptere en prosentvis verdi streng som "100%"
. Rullen beregnes i forhold til størrelsen på rullebeholderen. ScrollMagic vil bruke beholderens høyde for vertikalt rulleanlegg og dens bredde for horisontalt rullende containere.
var scene = ny ScrollMagic.Scene (varighet: "100%");
Skriptordre er ganske annerledes nå, siden biblioteker som GSAP er blitt skilt i motsetning til å være en del av ScrollMagic-kjernen. Dette betyr at når du ønsker et bibliotek som TweenMax må du først laste inn GSAP-biblioteket først, etterfulgt av kjernen ScrollMagic lib, så til slutt har ScrollMagic-pluginet du valgt.
Husk å alltid laste inn GSAP-biblioteket først, deretter ScrollMagic-pluginene.
Skriptanropet for GSAP-plugin er ScrollMagics nye plugin som inneholder GSAP-tween-funksjonaliteten som tidligere ble integrert i ScrollMagic. Jan har også integrert velocity.js for de som ikke ønsker funksjonaliteten GSAP gir.
En kontroller er en måte å "kontrollere scener." Det er en klasse som trengs en gang per rullebeholder og skrevet litt annerledes i 2,0.
La oss sammenligne måten regulatorer er instantiated nå, med hvordan de var i den gamle versjonen:
var controller = ny ScrollMagic ();
var controller = ny ScrollMagic.Controller ();
Scenen er plasseringen av bevegelsen / animasjonen. Det definerer hvor kontrolleren skal reagere og hvordan. Det er også et annet eksempel på hvor syntaks har endret seg litt.
var scene = ny ScrollScene (triggerElement: "# pinned-trigger", varighet: $ (vindu) .height () - 100, triggerHook: 0, reverse: true) .setPin ("# pinned-element") .addTo (kontroller);
var scene = ny ScrollMagic.Scene (triggerElement: "# pinned-trigger", varighet: $ (vindu) .height () - 100, triggerHook: 0, reverse: true) .setPin ("# pinned-element") .addTo (kontroller);
Når jeg snakket med ScrollMagics skaperen Jan Paepke, lærte jeg et fantastisk tidsbesparende tips for å hjelpe migrere fra den gamle ScrollMagic-koden til den nye
ScrollMagic
"Og erstatt strengen med"SM_TMP
"I alle filene dine. ScrollScene
"Med"ScrollMagic.Scene
”.SM_TMP
"Med"ScrollMagic.Controller
”.Merk: Pass på at du ikke inkluderer ScrollMagics kildefiler i søk-bare, bruk den til din egen kode. Det er et ekstra skritt, men er sikrere fordi det er situasjoner hvor du kan ha mellomrom før parentesene.
Hvis du trenger veiledning med ScrollMagic, kan du se på min CodePen-samling som brukes til WIKI-delen av ScrollMagic repo. WIKI har også gode forklaringer, sammen med demoene som er gitt i eksemplardelen av det offisielle ScrollMagic-nettstedet:
Nå må du lage fantastiske rulleanimasjoner for prosjektet ditt!