Wordpress Sidpanel Vänd Apple-Flashy Använda jQuery UI

Apple har alltid varit gudar när det gäller hur de presenterar sig och deras produkter. Jag älskar bara sidfältet på Apples startsida och ville använda Accordion-plugin i jQuery-gränssnittet för att uppnå detta! Som om det inte räcker för mig, vill jag kunna visa och gömma det också till mitt nöje. Jag ska visa dig hur!

Förord

Denna handledning förutsätter att du har en wordpress-maskin som körs på en server som du har tillgång till att ladda upp filer, ladda ner filer och bläddra till. Om du vill köra en lokal server på din dator med en WordPress-installation finns det en handledning om det här för Windows, och här för OS X.




Filer du behöver.

Vi behöver totalt 6 filer för denna handledning:

  • functions.php - Detta kommer att innehålla en liten kodlinje som registrerar vår sidofält.
  • index.php - Vi behöver mest definitivt den här filen. Några gissningar varför?
  • jQuery - Här är version 1.2.6 för dig.
  • jQuery UI (dragspel) - Vi behöver bara Accordion-plugin och UI-kärnan, inte hela UI-biblioteket.
  • sidebar.js - Innehåller all jQuery-koden för sidofältet.
  • style.css - Behövs att aktivera temat och innehåller alla CSS.
  • bilder mapp - Jag ska ge dig en lista med bilder för att fylla upp det här med lite senare, i CSS-delen. För tillfället behöver vi bara 1 bild som finns i HTML - RSS-ikonen! Placera den i mappen "bilder" och låt oss komma igång!

Glöm inte att aktivera ditt Wordpress-tema (vilket ska vara lämpligt namnet sidebarTema) i Dashboard! Höger. Till handledningen! Vi ska börja med HTML och Wordpress som vi behöver. Detta kommer att inkludera den strutre vi behöver, då fyller vi upp den med Wordpress-koden som visar inlägg och registrerar och visar sidofältet. Det kommer fortfarande att se icky efter det här, så vi fixar det med några söta CSS som gör att den liknar det som äppels startsida, och gör sidebaret även apple-y. Vi gör detta före JS så att de utan JS fortfarande ser den vackra utseendet. Då äntligen min favorit - jQuery. Vi kommer att animera det öppet och stängt och använda dragspel() och det är parametrar för att generera svängningseffekten.

Steg 1 - HTML

Snabbt öppna upp functions.php, och sätta in det här:

 'AppleQuery')); ?>

functions.php hämtas automatiskt av PHP / Wordpress och kör funktionerna. Den här funktionen ber Wordpress att registrera ett nytt sidofält i instrumentpanelen för att lägga till widgets till den. Det är inte allt men ... Vi måste sätta det i vårt tema! Jag förklarar det efter HTML / Wordpress-biten nästa. Arrayen heter bara sidofältet, så att vi i Dashboard kan välja vilket sidofält som ska redigeras (egentligen inte ett problem ... Mer av en bra vana ibland av många sidor).

Kopiera eller skriv det här till ditt index.html:

   <?php bloginfo('name'); ?><?php wp_title(); ?>         

Mest lästa artiklar "title =" RSS 2 feed ">

"title ="">

Förklaring

Ok ... Jag vet att det är mycket. Mycket mycket. Men denna handledning fokuserar inte specifikt på Wordpress och HTML, men jag väljer ut de intressen som du borde troligen förstå.

  • Hela sidofältet - Detta är huvuddelen av det som är viktigt. Vad vi frågar wordpress är det om, i hela den lokala wordpress-motorn, funktionen dynamic_sidebar är närvarande (som den är i functions.php), utför funktionen. AppleQuery anger namnet på sidfältet som vi tilldelade det (i functions.php, kom ihåg?).
  • - Detta är en del råa PHP för att echo aktuellt datum och tid för användaren. Det är bara här eftersom det är på Apple! Det är i formatet av: (Månad DD, ÅÅÅÅ 00:00 GMT).
  • - Titta i huvud element ... ser du samma sak? Återigen är det på Apples hemsida. Det är bara XML-poster som matar in för bloggen.
  • - Inget fantastiskt ... Det här är bara knappen som ska byta sidobarens synlighet. Jag har gjort det ett spann så det är inte klickbart för JSless-webbläsare, men med funktionen .click () av ​​jQuery-personer med JS kan!

Så med HTML och Wordpress allihopa, föreslår jag att du går in i din WP-administratör och lägger till några widgets till din blogg. Av någon anledning har sökningen ingen titel, och taggmugg widgeten försvinner inte - gå figur! Jag använde följande i min:

  • kategorier
  • Arkiv
  • länkar
  • sidor
  • meta

Och det borde se ut så här: Killar okej va? Frykt aldrig, CSS är här!

Steg 2 - CSS

Ja, fantastiskt CSS är här för att spara dagen! Vi vill skapa något något remenisce av detta (photoshop mockup):

Gilla min lilla oskärpaffekt? Jag trodde det passade ... Hur som helst. Blurningen kommer att vara JS, men för närvarande vill vi att allt ska utvidgas och visas, så att 1% smarta cookies som inte har JS aktiverat, kommer sidofältet fortfarande att vara synligt och ser fortfarande ganska ut. Mycket, väldigt stort, men ändå där. Det är en stor bit, så jag har lagt den i en annan fil, för att inte fylla den här sidan - Död inte mig! Kopiera eller skriv denna CSS i din style.css. Du behöver alla dessa bilder:

  • activeBg.png
  • h1.png
  • inactiveBg.png
  • sidebarClose.png
  • sidebarOpen.png
  • topStoriesBg.png

Några saker att notera

  • Jag har gjort mitt bästa för att hålla mig till ems när det gäller typsnittstorlek, så 75% justerar bara all text till 12px som blir 1em. Det är dock en annan handledning!
  • I h1-koden har jag använt "text-skugga". Detta är CSS3. Det bidrar bara till applesque look!
  • #innehåll - Har en vit bakgrundsfärg. Varför frågar du? Bakgrunden kommer alltid att vara vit ändå, vad är meningen? Tja, mina vänner, när vi kommer till jQuery behöver vi #innehåll att bli en filt för sidofältet, och om det inte finns någon bakgrundsuppsättning, blir den transparent och så visar sidofältet.
  • #sidebarToggleButton - Det är ett helvete av ett namn ... Detta ställer in knappen som kommer att skifta sidobjälkens synlighet till rätt position, men osynlig för JSless-folket. När vi flyttar till JS, kommer bakgrundsbilderna att tillämpas så så visas de bara för JS-folket!

Dessa 3 saker handlar bara om de enda ryckarna där inne. Jag har testat den koden i FF, Safari 3 och Opera 9, och allt ser perfekt ut! Så här ska det se ut:

Nästa behöver vi jQueryfy det.

Steg 3 - jQuery Time!

Jag älskar jQuery! Jag älskar det så att du kan översätta ord för att koda så enkelt, och jag börjar alltid med att göra orden. Här är en grundläggande ide om vad vi vill att manuset ska göra.

  • Dölj sidofältet.
  • Om du klickar på ".sidebarOpen" växlar du följande:
    • Ta bort klassen "sidebarOpen".
    • Lägg till klassen "sidebarClose" (som vi kommer att stila nästa avsnitt).
    • Animera sidofältet för att glida ut från under (bokstavligen, med position: relativ;)
    • Animera (detta) för att flytta X pixelmängder till vänster (så att den stannar i linje med sidofältet).
  • Inleda överenskommelsen.

Det verkar som om mycket (men det är verkligen inte ...) så jag tar dig igenom det steg för steg. Öppna filen du skapade kallad sidebar.js och börja skriva!

Steg 3.1

Som alltid glöm inte att paketera allt i jQuery specialdokument redo:

$ (dokument) .ready (funktion () // jQuery-koden går här);

Sätt allt här mellan dokumentet klart!

Steg 3.2

$ ("# sidebar"). css (vänster: "205px");

Detta "döljer" sidofältet genom att manipulera DOM-nivån CSS. Det blir inte riktigt, det blir bara svepat under mattan. Den bokstavliga mattan är div # innehåll. Det går inte att fungera förrän vi har lagt till lite mer CSS, men jag täcker efter det här avsnittet.

Steg 3.3

$ ("sidebarOpen"). växla (funktion () $ (detta) .removeClass ("sidebarOpen") .addClass ("sidebarClose") .animate (höger: "205px", 500); $ sidobar "). animera (vänster:" 0px ", 500);, funktion () $ (detta) .removeClass (" sidebarClose ") .addClass (" sidebarOpen ") .animate (höger:" 0px " , 500); $ ("# sidebar"). Animera (vänster: "205px", 500););

OK Jag kan förstå din förvirring. Det här är mycket för en stegvis instruktion rätt ?! Jo ja ... Men det är faktiskt 2 mycket liknande saker. Den första funktionen i .toggle () kommer:

  • Tar bort klassen "sidebarOpen" (klasserna gäller för CSS i nästa avsnitt).
  • Lägger till klassen "sidebarClose".
  • Animerar vår lilla knapp för att glida åt vänster bredvid:
  • Sidofältet glider ut sig själv, animeras med jQuery. Båda är inställda att komma ut under en halv sekund, så de borde flytta ihop.

Saken är, att den andra funktionen är exakt det, men i omvänd! Det:

  • Tar bort klassen "sidebarClose".
  • Lägger till klassen "sidebarOpen".
  • Animerar vår lilla knapp för att glida tillbaka till höger bredvid:
  • Sidofältet glider tillbaka in.

Se! Inte så svårt. Det är bara en massa kod att läsa över.

Steg 3.4

Accordion tid! Jippie! Vi får äntligen använda det jQuery-gränssnittet som finns. Hur de har utformat widgeten gör det super enkelt att implimenta:

$ ("# sidebar ul"). dragspel (header: 'h2', händelse: 'mouseover', activeClass: 'selected');

Det är bara den .dragspel() funktion, applicerad på ul inom #sidebar div. Parametrarna (en per rad) är följande (ganska självförklarande ... men eh):

  • rubrik - Det här definierar handtagen av varje dragspelare "låda" - i vårt fall h2 av varje widget.
  • händelse - Definierar när du ska byta lådor, och vi vill ha svängningseffekten som Apple har, så vi använder mouseover
  • activeClass - Detta är praktiskt för den lilla extra CSS vi håller på att uthärda. Det ger den utökade lådan en klass av "valda".

Det är all JavaScript-koden vi behöver. Det är allt ganska enkelt och enkelt anpassat för att passa vad du behöver!

Varför det här är så fantastiskt

Jag tycker att detta inte har blivit förhärligat nog än! Det fantastiska med ackordspelet är att du inte behöver redigera någon av Wordpress genererade kod, som vi inte har formaterat oss alls (bortsett från omslaget ul, men det är nödvändigt oavsett). Det är inte bara 100% obegränsande och 100% oberoende av redigerade HTML-koden, men det är också en kort snabb funktion. Accordion gör allt det smutsiga arbetet med att välja, animera, aktivera, byta klasser etc. Det är fantastiskt! Överväga AccordionUI glorified! Du borde troligen ha något liknande det här (jag har lagt dragspelet i mycket lätt så att du kan se var det borde vara):

Steg 4 - jQuery CSS

Så klart vi kommer att behöva lite extra CSS för att tillgodose alla chopping och förändring jQuery gör för oss. Saker som behöver ytterligare styling är:

  • #sidebarToggleButton - Genom att använda de klasser som jQuery tilldelar oss, kan vi nu säkert ställa in bilderna 'sidebarClose.png' och 'sidebarOpen.png' som jag fick dig att spara tidigare.
  • Harmoniet behöver definitivt lite arbete. Vi måste fixa fyrkanterna med några CSS3 och ställa in den aktiva klassen.
/ * jQUERY CSS * / #sidebar> ul gränsstråle: 5px; -moz-gränsen-radie: 5px; -webkit-gräns-radie: 5px; -opera-gränsen-radie: 5px;  span.sidebarOpen background: url (images / sidebarOpen.png) no-repeat center;  span.sidebarClose background: url (images / sidebarClose.png) no-repeat center;  h2.selected background: url (images / activeBg.png) repeat-x! VIKTIGT; färg: vit! VIKTIGT; 

Bara 2 saker att notera:

  1. #sidebar> ul - Det är den direkta ul Barn till #sidebar får de coola avrundade kedjorna - fortfarande beta CSS3. Men fungerar i alla Mozilla, Opera och WebKit-baserade webbläsare.
  2. !VIKTIG - Detta behövs för att åsidosätta det som tidigare har ställts in - standardhandtaget grå bakgrund.

Och så nu är din slutliga produktvisning något som här: (Klicka för HTML-version)

Avslutar

Så vi har gått över lite saker i den här handledningen. Vi har tittat på dynamiska sidfält, Mycket jQuery för att visa och gömma sidofältet som är infact ett dragspel i sig! Denna handledning syftar till att använda ytterligare plugins för standard jQuery (vi pluggar jQuery UI in) och även dynamic_sidebar-funktionen.