Använd Sprites för att skapa en underbar Navigation-meny

CSS sprites kan dramatiskt öka webbplatsens prestanda, och med jQuery kan vi enkelt genomföra fantastiska övergångseffekter. Låt oss börja.


Handledning detaljer

  • Krav:
    • Grundläggande kunskaper om jQuery
    • Grundläggande kunskaper om Photoshop
    • Grundläggande kunskaper om CSS
  • Svårighetsgrad: Mellanliggande
  • Beräknad slutförd tid: 40 min

Vad är en CSS Sprite?

Sprites går tillbaka till de tidiga dagarna av videospel, där de användes som optimeringsteknik för visning av 2D-grafik. En CSS-sprite är en teknik som involverar att gruppera bilder för att bilda en enda huvudbild och sedan selektivt visa endast de erforderliga sektionerna med hjälp av CSS-attribut (bredd, höjd, bakgrundsställning etc.).

I den här handledningen skapar vi en navigationsmeny inspirerad av Dragon Interactive. De har ett utmärkt designkoncept, med perfekt användning av höjdpunkter och färger.

Steg 1

Börja med att skapa ett nytt Photoshop-dokument, som är 800x bred vid 500px högt.

Steg 2

Därefter skapar vi en horisontell linjal vid 70 px markeringen genom att visa -> ny guide; Det här blir vår menyhöjd.

Steg 3

Nu ska vi skapa en mapp meny, och inuti den, en undermapp som heter "Meny Text".

Steg 4

Markera textverktyget (genväg: t) och ställ in följande egenskaper i teckenverktygslådan.

  • Teckensnitt: Franklin Gothic Medium Cond
  • Teckenstorlek: 15pt
  • Svart färg

Andra teckensnitt kan också användas men denna typsnittfamilj passar bäst för inbäddad texteffekt som vi kommer att ge senare. Om du inte har denna typsnitt kan du hämta den från webbplatsen.

Steg 5

Skapa en annan horisontell linjal vid 40px, vilket hjälper till att hålla vår menytext horisontellt anpassad.

Steg 6

Välj nu menytextmappen och skriv menyorden HEM, TJÄNSTER, PORTFOLIO, OM OCH KONTAKT, och håll lika mellanrum mellan varandra. Det ska nu se ut som bilden nedan.

Steg 7

Skapa nu en annan mapp under menyns textmapp och namnge den "Menybakgrund".

Steg 8

Låt oss nu skapa ett nytt lager i menyn Bakgrundsmapp och sedan använda ett rektangulärt markeringsverktyg, skapa ett val av 100px bred och 70px hög.

Steg 9

Välj gradientverktyget (genväg: g) och ställ in gradientfärgerna från # 555555 till #adadae .

Steg 10

Dra nu en gradient från början av valet till toppen av valet. Ge sedan en stroke med följande egenskaper:

  • Stroke Storlek: 1px
  • Position: utanför
  • Svart färg

Strejken tillsattes för att ge djupet till våra menyavdelningar.

Steg 11

Nu För att uppnå de högpolerade ändarna, och för att skapa den korrekta effekten när muspekaren dyker upp, kommer vi att ge den en angränsande höjdpunkt.

Steg 12

Gå till välj> ändra> kontrakt och ange 1px.

Steg 13

Välj brännverktyget och ställ in följande egenskaper:

  • Borststorlek: runt 200px
  • Borsthårdhet: 0%
  • Område: Skuggor
  • Exponering: 30%

Steg 14

Nu flyttar vi menyavdelningen rätt 1px, med hjälp av flyttverktyget (genväg: v) för att visa vänstra sidan av stroke, vilket var osynligt på grund av sin position.

Steg 15

Skapa kopior av ovanstående lager och justera dem med avseende på menytexten.

Två saker som måste noteras

  • Transformera (ctrl + t) och öka lagrets storlek under TJÄNSTER och PORTFOLIO, eftersom de är bredare än de andra orden. Ändra längden från 100px till 110px.
  • De intilliggande lagens slag ska överlappa varandra.

Så här ser menyn ut när vi justerar placeringen av lagren och meny texten i enlighet därmed.

Steg 16

För att bädda in den typografiska effekten lägger vi till "Drop Shadow" -effekten med följande inställningar till vår text:

  • Färg: # b7b6b6
  • Opacitet: 40%
  • Avstånd: 1px
  • Spridning: 100%
  • Storlek: 0px

Steg 17

Nu är det dags att skapa vad menyn ser ut under muspekarens tillstånd. Skapa en kopia av mappen "Menybakgrund" och byt namn på den till "Menyhoppare". Flytta sedan mappen 70px ner med hjälp av flyttverktyget så att den nybildade menyns övre del berör den horisontella guiden.

Anledningen till att vi har skapat kopian av menymappen är att vi är intresserade av att placera menytexten. Om vi ​​hade skapat det manuellt skulle vi behöva oroa oss för den exakta anpassningen av menyens text, vilket skulle vara mycket mer tråkigt.

Steg 18

Nu väljer vi bakgrundsskiktet i servicemenyn från mappen "Menyhantering" och ger den en fin elegant effekt på svävarläget. För att göra detta, först skapa ett val genom att trycka på ctrl och klicka på lagret; tryck sedan på radera, vilket tar bort den nuvarande nyansen. Nästa…

  • Färg - # 9de0ff vid 0% Plats
  • Färg - # 0072ff vid 50% Plats
  • Färg - # 005ead vid 100% Plats

Välj radial gradient och dra en rad från botten av valet till 30px över toppen av valet.

Steg 19

Vårt arbete är inte klart ännu. För att få det smidigt, behöver vi polera det lite mer. För att skapa en mer uppenbar menyavdelning gör vi kantarna mörkare. För att uppnå detta måste vi lägga till följande effekter:

  • Välj brännverktyget, med en penselstorlek på 200px, intervall - markera och exponera till 50%, borsta det längs delarnas kanter.
  • För att göra kanterna ännu mörkare lägger vi till en inre skuggningseffekt:
    • Blandningsläge: hårt ljus
    • Opacitet: 70%
    • Avstånd: 0px
    • Choke: 0%
    • Storlek: 10px

Steg 20

Applicera en liknande effekt för portföljen och om menyer. För kontaktmenyn, ändra gradientfärgerna till:

  • Färg - # ff9dbd vid 0% Plats
  • Färg - # ff0084 vid 50% Plats
  • Färg - # a00337 vid 100% Plats

Så här ser vår meny ut nu:

Steg 21

Hemmenydelningen behöver ges särskild behandling; välj skiktet genom att trycka på ctrl och klicka på skiktet. Tryck på delete för att ta bort nuvarande nyans och välj gradientverktyget med följande färger:

  • Färg - # fff5c0 vid 0% Plats
  • Färg - # fae15d vid 50% Plats
  • Färg - # eac500 vid 100% Plats

Välj den här gången linjär gradient och dra en gradient från toppen av markeringen till botten av valet.

Steg 22

Välj brännverktyget, håll resten av egenskaperna lika med undantag av intervallet, ställ det till midtoner och applicera penselsträckor runt kanterna förutom toppen.

Steg 23

Nu för att skapa den glasartade effekten: välj pennverktyget, se till att "formfyllning" är vald och dra formen som den i bilden och ställ in blandningsläget till mjukt ljus med en opacitet på cirka 40%.

Steg 24

Två saker innan vi är färdiga med Photoshop-delen.

  • Först verkar texteffekten i mappen "Menyhantering" inte tillräckligt elegant; så vi ändrar färgen på drop shadow egenskapen.
    • Hemmeny
      • Färg: # fff368
      • Opacitet: 80%
      • Lägg även till övergångsöverlägg: # 854406 till b75a03
    • Tjänster, Portfölj och Om menyer
      • Färg: # 78bbff
      • Opacitet: 70%
    • Kontaktmeny
      • Färg: # f78bb6
      • opacitet: 80%
  • För det andra är den sista delningen i menyn mappen inte en angränsande höjd till höger; så vi klämmer en liten del av bakgrundsskiktet och justerar det bredvid bakgrundsskiktet för kontakten. Sedan beskär vi bilden och sparar.

Slutligen ser vår spritbild så ut:

Steg 25

Nu kommer kodningssektionen, vilket är ganska enkelt. Skapa en html-fil och lägg till följande kod:

       Fantastisk meny   

Här har vi skapat en enkel html-fil, som består av en orörd lista - vår navigeringsfält. Innan vi går framåt, låt oss ta en titt på ett par filer som vi nu ska importera:

  • style.css är den externa CSS-filen där vi ska utforma vår navigationslista.
  • Vi har importerat jQuery för animeringen på svävaren.
  • Pluginet jQuery easing används också, vilket vi granskar senare.
  • Det är bra att skapa en extern js-fil för vårt arbete, så gör vi det också i "sprite.js".

Steg 26

Skapa en extern .js-fil, kallad sprite.js, och klistra in i följande kod.

 $ (funktion () $ ('# navigation li a'). append (''); // span vars opacitet kommer att animera när musen svävar. $ ('# navigation li a'). sväva (funktion () $ ('sväva', detta) .stop (). animate ('opacity': 1, 700,' easeOutSine '), funktion ) $ ('.huver', detta) .stop (). animera ('opacitet': 0, 700, 'easeOutQuad')));

När DOM är laddad, injicerar vi en spänn in i vår ankar tagg; denna spänning kommer faktiskt att animera. Med hjälp av svängningsfunktionen för ankaretiketten, så animerar vi spännens opacitet. För att skapa en mjukare animation använder vi lättnadskvationen. Jag använder 'easeoutsine' och 'easeoutquad'; gärna prova en alternativ kombination, om du vill.

Steg 27

Nu kommer CSS-delen. Skapa style.css-filen. Nedan är den första bilden av hur menyn ser ut. För nu är det bara fyra prickar, för att vi ännu inte har stylat det.

Steg 28

Först anpassar vi listan.

 kropp bakgrund: # 000000;  #navigation margin-left: 250px;  #navigation li float: left; 

Vi har bara flyttat menyn i mitten lite.

Steg 29

Stil ankaretiketten; dess bakgrund kommer att bli vår spritbild.

 #navigation li a background-image: url (images / sprite.jpg); display: block; 

Displaystilen måste vara inställd för att blockera; annars kommer ingenting att visas.

I nästa steg kommer vi att ge var och en av dem rätt positionering.

 .hem bakgrundsställning: 0px 0px; bredd: 102px; höjd: 70 bildpunkter; . tjänster bakgrundsposition: -102px 0px; bredd: 110px; höjd: 70px .portfolio background-position: -212px 0px; bredd: 108px; höjd: 70px .om bakgrundsställning: -320px 0px; bredd: 102px; höjd: 70px .contact background-position: -422px 0px; bredd: 103px; höjd: 70px

Här har vi ställt in bakgrundspositionen och bredden på varje ankaremärke. Värdena kan variera, och det tar lite tid att bli perfekt.

Steg 30

 #navigation a .hover background: url (images / sprite.jpg) no-repeat; display: block; opacitet: 0; position: relativ; topp: 0; vänster: 0; höjd: 100%; bredd: 100%;  #navigation a.home .hover bakgrundsposition: -0px -72px;  #navigering a.tjänster. över bakgrundsposition: -102px -72px;  #navigering a.portfolio. över bakgrundsposition: -212px -72px;  #navigation a.about .hover background-position: -320px -72px;  #navigation a.contact .hover background-position: -422px -72px; 

Nu ska vi definiera CSS för spänningen; Detta är samma spritbild som används ovan. Höjden och bredden är gjorda 100% så att den upptar hela ankarblocket. Bakgrunden till varje span-tagg justeras, och slutligen är vårt arbete komplett.

Steg 31

Observera att det tar tid att få position och breddstämning rätt; du kan sluta med lite olika värden för dessa attribut - och det är helt okej!

CSS sprider resurser

Phew verkar som mycket arbete, men bra saker tar tid att bygga upp. Här är några ytterligare resurser som du kan hitta praktiska.

  • CSS Tricks har en fantastisk tutorial för nybörjare.
  • För tråkigt för dig? Här är ett plugin som konverterar din spritbild till en meny.
  • En MooTools fläkt? Kolla in denna snygga handledning.
  • cssSprites.com
  • Följ oss på Twitter, eller prenumerera på Nettuts + RSS-flödet för de bästa webbutvecklingsstudierna på webben.