Hvordan lage din egen klistrede topplinje som MakeUseOf

Hvordan lage din egen klistrede topplinje som MakeUseOf / Wordpress og webutvikling

For omtrent en måned siden introduserte vi et nytt grensesnittelement til MakeUseOf - en flytende navigasjons- og søkefelt. Tilbakemeldingene vi har fått er nesten helt positive, intern søketrafikk har raket, og noen lesere har spurt om hvordan man lager en til sitt eget nettsted, så jeg trodde jeg ville dele.

Vi bruker jQuery til å holde stangen til toppen av skjermen - men bare forbi et bestemt punkt. Jeg vil gjøre alt dette i standard WordPress-tema - Tjuefem, selv om det selvfølgelig kan brukes på ethvert tema eller nettsted som du forstår tilstrekkelig å endre.

HTML-koden

Først opp, åpne temaene header.php og identifiser navigasjonslinjen som vi vil gjøre klebrig. Som jeg sa, er koden nedenfor for standard tjuefem; din kan variere.

 

Først legger du til en ny DIV-beholder som omgir hele denne NAV-delen.

 

La oss også flytte denne standard søkefeltet inn her. Du vil legge merke til at den er lagt til som standard øverst til høyre på temaet; finn linjen og lim det inn i vår navigasjonsseksjon. Slett alle andre forekomster av den i denne filen.

Hvis du lagrer og oppdaterer nå, ser du at søknadsskjemaet ikke vises i navigasjonsfeltet - det vises fortsatt øverst til høyre. Det er fordi det har blitt plassert helt med CSS, og vi vil slette alt det om et sekund.

CSS

Åpne den viktigste style.css filen og finn delen for søkeskjemaet:

 #branding #searchform ...

Erstatt hva som er inni det (bør være i stand til fire linjer, inkludert noen absolutt posisjonering) med dette:

 #branding #searchform float: left; bakgrunn: hvitt; margin: 7px; 

Du er velkommen til å justere fargen eller marginen. Bytt float hvis du helst vil det dukket opp på høyre side av baren. I dette temaet blir søket utvidet når brukeren klikker inni den; Det er ikke omfattet av denne opplæringen, men du kan se en lignende effekt på vår MakeUseOf-søk.

jQuery

Hvis du lurer på hvorfor vi bruker jQuery til å gjøre dette, er det enkelt: CSS er løst, og kan ikke justeres dynamisk. Selv om vi kunne bruke CSS til å lage en klebrig overskrift, ville det være nødvendig å være toppelementet på siden. Problemet vi har er at vår meny ikke er toppelementet, så vi kan ikke starte med å være klissete. Dette er hvor jQuery brukes; Vi kan sjekke når brukeren går forbi et bestemt punkt; da, og bare da, gjør det klebrig.

Start med å legge jQuery til temaet ditt. Ditt tema kan allerede ha det lastet Hvis ikke, ingen bekymringer. Du kan enten enqueue det ved å legge til følgende kode i dine funksjoner.php, slik som:

 

Eller du kan bare omgå WordPress helt og hardcore dette inn i headerfilen. Et sted i hoveddelen din, bare legg til denne linjen:

  

Hvis du bruker den første metoden, lastes den inn noConflict modus, noe som betyr at du må bruke “jQuery” i koden din for å få tilgang til jQuery-funksjoner. Hvis du bruker den andre metoden for direkte å legge den til toppteksten, kan du bruke standard jQuery accessor av $. Jeg antar den andre metoden i koden nedenfor.

Så, for å legge til en bestemt jQuery-kode, plasser du et eller annet sted på slutten av din header.php - Jeg har plassert meg like før

  

Det første skriptet gjør er å finne ut hvor navigasjonslinjen starter, og husker den verdien. For det andre legger vi til rullehendelsen - dette betyr at hver gang brukeren ruller siden, kan vi kjøre denne koden. Når koden går, er det to måter det kan gå:
1. Hvis vinduet har rullet forbi navigasjonslinjen, gjør vi det til en fast CSS (dette er “klissete” del).
2. Hvis toppen av vinduet er høyere enn den opprinnelige plasseringen til navigasjonslinjen (dvs. brukeren rullet tilbake igjen), setter vi den tilbake til standard statisk posisjon.

Det er to poeng jeg vil henvende deg til:

  • +288 er der for å fikse feilen for å få feil posisjon uten det utløses baren sin klissete tilstand for tidlig - fjern den for å se hva jeg mener. Dette vil ikke være nødvendig i alle temaer, og du kan sannsynligvis komme med en bedre løsning.
  • For å fikse problemet med navigasjonslinjen endrer bredden når den går i klistret tilstand, redigerer style.css, linje 550, for å lese 1000px i stedet for 100%

Det er det, navigasjonslinjen din skal nå være pent klissete.

Sammendrag:

Den fulle erstatning header.php kode for denne opplæringen kan bli funnet på denne pastebin; og erstatning style.css her. Jeg håpet du har hatt denne lille opplæringen; Hvis du har problemer, må du legge inn i kommentarene eller spør deg bort på MakeUseOf Answers, men vær så snill å huske å gjøre nettstedet ditt tilgjengelig for offentlighet, så jeg kan gå og se på meg selv. Hvis du er ny her, må du sjekke ut alle våre andre blogger- og webutviklingsartikler.

Utforsk mer om: Webdesign, webutvikling, Wordpress-temaer.