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.
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:
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!)