La oss lage noen dynamiske, animerte seksjonskoblinger

Når du oppretter markering for lengre skriftlige brikker på en enkelt side, er det ofte viktig å lage navigasjonsstrukturer for å hoppe mellom forskjellige deler av teksten. Dette støttes innfødt i HTML, slik at vi kan hoppe over til seksjoner på en side og til og med besøke dem direkte fra eksterne koblinger. 

En liste bortsett - her ser du delenes link og "fragmentidentifikatoren" (hash-taggen ...) i webadressenHjelpedokumentasjonen på GitHub er et annet sted, du finner dynamiske seksjonskoblinger

I denne opplæringen diskuterer vi en teknikk for dynamisk generering av disse koblingene med JavaScript, og deretter animerer dem ved hjelp av CSS. La oss dykke inn!

Markup

Det første nødvendige trinnet er å skape passende merking for ditt skriftlige stykke. Vi antar at du har en artikkel, og i den artikkelen er det mange seksjons, hver med sin egen h1 tag og påfølgende innhold.

Her ser du hvordan HTML-en din ser ut:

Her er en del

Mobiliser stolthet fundraising kampanje, grunnlagskriterier lagre liv menneskerettigheter donere empowerment. Generøsitet klimaendringer, sårbare befolkning globale ledere varig forandring. Utfall, ærlige utviklingsland forstyrrer menneskelig sentrert design; fremdrift gjennomføring UNHCR mange stemmer prosess.

De eldste; kompleksitet feire; rettshjelp diversifisering sanitær sosialt entreprenørskap åpen kildekode bistand samfunn helsearbeidere.

Her er en annen

Utvidelse av fellesskapets eierskap Kickstarter offentlig tjeneste samarbeid forbruk, sysselsetting Rockefeller offentlig-private partnerskap transformative takling. Partner Aga Khan uformelle økonomier nødvendigheter samarbeidsbyer offentlige institusjoner mulighet næring.

Og enda en

Offentlig sektor fritt uttrykk meningsfull, enabler; Andrew Carnegie Bloomberg, fremvoksende engasjement globalisering krisesituasjon. Kjønn, likestilling sannhet langsiktig bedre kvalitet ungdoms samfunnsansvar likestilling skalerbar slutt sult bærekraftig Medisiner du Monde byrå endre livet.

Sosial analyse, tilknyttet; hjørnestein livreddende stipendiater Jane Addams fri tale, forandringer bevegelser løfte folk opp sosiale utfordringer positiv sosial endring forstyrrelser fremtid.

Merk: Som du kan se, søker vi en id til de separate seksjonene. Vi velger å gjøre dette fordi id er faktisk relatert til delen selv, ikke den h1 stikkord.

Å hoppe til et element med en gitt id På en side lager du en ankermerke med en href verdi lik ish-merket etterfulgt av id. For eksempel, i vårt eksempel innhold fra oven, for å hoppe til den andre delen, kan vi opprette følgende link:

Andre seksjon

Det er mange måter å gjøre dette på: Du kan kode koblingene for hånd, du kan bruke en abstraksjon som bygger ut delen av HTML, inkludert lenken. I denne opplæringen skal vi imidlertid bruke JavaScript for å generere linkene dynamisk.

Vanilje JS

Her er JavaScript:

var sections = document.querySelectorAll ('section'); for (var i = 0; i < sections.length; i++)  var section = sections[i]; var id = section.id; var h1 = section.querySelectorAll('h1')[0]; var text = h1.innerHTML; h1.innerHTML = ""+ tekst +""+" "+ id +" ";

jQuery-versjonen

Og her er en jQuery-versjon, som i hovedsak oppnår det samme:

$ ('id'); var h1 = $ (dette) .find ('h1'). første () ; var t = h1.text (); h1.html (""+ t +""); h1.append (" # "+ id +" "););

Begge disse gir samme resultat. Vi ser etter alle artiklens seksjonsavkomster, og for hver av dem finner vi id av den delen. Deretter bygger vi en lenke som peker på det id og legg det til Overskrift element. Vi pakker også den eksisterende teksten i et spenn for mer fleksibel styling.

Snakker om styling ...

Deretter la vi bruke noen grunnleggende CSS for å gi en skjult og avslørende effekt:

@import url (http://fonts.googleapis.com/css?family=Fira+Sans:300,400,700); kropp font-family: "Fira Sans", sans-serif; farge: # 444;  artikkel bredde: 90%; margin: 0 auto;  h1 posisjon: relativ; span float: left;  en overgang: alle .4s; opasitet: 0; farge: # FD9148; font-weight: 300; margin-venstre: 12px; tekst-dekorasjon: ingen;  &: svever a tekstinnhold: 0; opasitet: 1; 

Disse reglene fastsetter først noen grunnleggende stiler; font, farge, artikkel bredde og så videre. Så sier vi at en (som vi vedlagt tidligere via JavaScript) vil ha overganger som er brukt til det og vil ha en opacitet på 0 som standard. Først når vi svinger over det, øker dets ugjennomsiktighet til 1, noe som gir oss fading i effekt.

Og det er det! Nå har vi en relativt enkel implementering av denne teknikken i aksjon:

Konklusjon

Vi har nettopp bygget en veldig nyttig forbedring for innholdsrike nettsider! Fallback er også grasiøs: Hvis JavaScript er deaktivert, vises ikke koblingene-og hvis en hash-kode er til stede på slutten av webadressen, ignoreres den..

Vår fade-in-effekt er en enkel måte å presentere linken på, så hvordan kan du forbedre den? Hvilke typer animasjoner kan du søke? Vil du plassere linken på samme måte? Vi gleder oss til å høre ideene dine (og passe på fellesskapsprosjektet vi snart skal lansere på dette emnet!)