Gebruik Sprites om een ​​Awesomeness-Filled Navigatiemenu te maken

CSS-sprites kunnen de prestaties van een website drastisch verhogen, en met jQuery kunnen we eenvoudig geweldige overgangseffecten implementeren. Laten we beginnen.


Zelfstudiedetails

  • Vereisten:
    • Basiskennis van jQuery
    • Basiskennis van Photoshop
    • Basiskennis van CSS
  • Moeilijkheidsgraad: gemiddeld
  • Geschatte voltooiingstijd: 40 minuten

Wat is een CSS Sprite?

Sprites dateren uit de begintijd van videogames, waar ze werden gebruikt als optimalisatietechniek voor het weergeven van 2D-afbeeldingen. Een CSS-sprite is een techniek waarbij afbeeldingen worden gegroepeerd tot één hoofdafbeelding en vervolgens selectief alleen de vereiste secties worden weergegeven met CSS-kenmerken (breedte, hoogte, achtergrondpositie, enzovoort).

In deze zelfstudie maken we een navigatiemenu geïnspireerd op Dragon Interactive. Ze hebben een uitstekend ontwerpconcept, met een perfect gebruik van highlights en kleuren.

Stap 1

Begin met het maken van een nieuw Photoshop-document, dat 800px breed bij 500px hoog is.

Stap 2

Vervolgens maken we een horizontale liniaal op het 70px-teken door naar view -> new guide te gaan; dit wordt onze menushoogte.

Stap 3

Nu gaan we een mapmenu maken en daarbinnen een submap genaamd 'Menutekst'.

Stap 4

Selecteer de teksttool (snelkoppeling: t) en stel de volgende eigenschappen in de tekentoolbox in.

  • Lettertype: Franklin Gothic Medium Cond
  • Tekengrootte: 15pt
  • De kleur zwart

Andere lettertypen kunnen ook worden gebruikt, maar deze lettertypefamilie is het meest geschikt voor ingesloten teksteffecten die we later zullen geven. Als u dit lettertype niet heeft, kunt u het van de website halen.

Stap 5

Maak een nieuwe horizontale liniaal met 40 px, dit zal helpen onze menutekst horizontaal uitgelijnd te houden.

Stap 6

Selecteer nu de map met menuteksten en typ de menuwaarden HOME, SERVICES, PORTFOLIO, ABOUT en CONTACT, waarbij u gelijke spaties tussen beide houdt. Het zou nu moeten lijken op de afbeelding hieronder.

Stap 7

Maak nu een andere map onder de menutekstmap en noem deze "Menuachtergrond".

Stap 8

Laten we vervolgens een nieuwe laag maken in de map Menu Background en vervolgens een rechthoekig selectiekader gebruiken om een ​​selectie van 100px breed en 70px hoog te maken.

Stap 9

Selecteer het verloopgereedschap (snelkoppeling: g) en stel de verloopkleuren in van # 555555 in #adadae .

Stap 10

Teken nu een verloop vanaf de onderkant van de selectie naar de top van de selectie; geef het een slag met de volgende eigenschappen:

  • Lijngrootte: 1 px
  • Positie: buiten
  • De kleur zwart

De streek is toegevoegd om diepte te bieden aan onze menudelen.

Stap 11

Om de hoog gepolijste uiteinden te bereiken en om het juiste effect te creëren wanneer de muis zweeft, geven we deze een aangrenzend hoogtepunt.

Stap 12

Ga naar> wijzigen> contract selecteren en 1px invoeren.

Stap 13

Selecteer het brandprogramma en stel de volgende eigenschappen in:

  • Penseelgrootte: rond 200 px
  • Borstelhardheid: 0%
  • Bereik: schaduwen
  • Blootstelling: 30%

Stap 14

Nu gaan we de menu-indeling rechts 1px verplaatsen met behulp van het gereedschap Verplaatsen (snelkoppeling: v) om de linkerkant van de streek weer te geven, die vanwege zijn positie onzichtbaar was.

Stap 15

Maak kopieën van de bovenstaande laag en pas ze aan met betrekking tot de menutekst.

Twee dingen die moeten worden opgemerkt

  • Transformeer (ctrl + t) en vergroot de laag onder SERVICES en PORTFOLIO, omdat deze breder zijn dan de andere woorden. Wijzig de lengte van 100 px naar 110 px.
  • De slag van de aangrenzende lagen moet elkaar overlappen.

Dit is hoe het menu eruitziet wanneer we de positionering van de lagen en menutekst dienovereenkomstig aanpassen.

Stap 16

Om het typografische effect te verankeren, voegen we het effect "Slagschaduw" met de volgende instellingen toe aan onze tekst:

  • Kleur: # b7b6b6
  • Dekking: 40%
  • Afstand: 1px
  • Verspreiding: 100%
  • Grootte: 0px

Stap 17

Nu is het tijd om te creëren hoe het menu eruit ziet tijdens de status van de muisaanwijzer. Maak een kopie van de map "Menu-achtergrond" en wijzig de naam in "Menu-muisaanwijzer". Verplaats vervolgens met behulp van het verplaatsgereedschap de map 70px naar beneden zodat het bovenste gedeelte van het nieuwe menu de horizontale hulplijn raakt.

De reden dat we de kopie van de menumap hebben gemaakt, is omdat we geïnteresseerd zijn in de positionering van de menutekst. Als we het handmatig hadden gemaakt, dan zouden we ons zorgen moeten maken over de exacte uitlijning van de tekst van het menu, die veel saaier zou zijn.

Stap 18

Nu zullen we de achtergrondlaag van het servicemenu selecteren in de "Menu Hover" map en het een mooi elegant effect geven op de hover-status. Om dit te doen, maakt u eerst een selectie door op ctrl te drukken en op de laag te klikken; druk vervolgens op delete, waardoor de huidige schaduw wordt verwijderd. Volgende ...

  • Kleur - # 9de0ff op 0% Locatie
  • Kleur - # 0072ff bij 50% Locatie
  • Kleur - # 005lees bij 100% locatie

Selecteer radiale gradiënt en teken een lijn vanaf de onderkant van de selectie naar 30 px boven de bovenkant van de selectie.

Stap 19

Ons werk is nog niet helemaal voltooid. Om het een vloeiende touch te geven, moeten we het een beetje meer oppoetsen. Om een ​​meer onthullende menudeling te creëren, maken we de randen donkerder. Om dit te bereiken, moeten we de volgende effecten toevoegen:

  • Selecteer het gereedschap Verbranden met een penseelgrootte van 200 px, bereik - markeer en belicht 50%, borstel het langs de randen van de divisie.
  • Om de randen nog donkerder te maken, voegen we een innerlijk schaduweffect toe:
    • Mengmodus: Hard licht
    • Dekking: 70%
    • Afstand: 0px
    • Choke: 0%
    • Grootte: 10px

Stap 20

Pas een soortgelijk effect toe voor de portfolio en voor menu's. Wijzig de verloopkleuren voor het contactmenu in:

  • Kleur - # ff9dbd bij 0% Locatie
  • Kleur - # ff0084 op 50% locatie
  • Kleur - # a00337 op 100% locatie

Dit is wat ons menu nu ziet:

Stap 21

De home menu-afdeling moet een speciale behandeling krijgen; selecteer de laag door op ctrl te drukken en op de laag te klikken. Druk op delete om het huidige schaduwpunt te verwijderen en selecteer het verloopgereedschap met de volgende kleuren:

  • Kleur - # fff5c0 op 0% locatie
  • Kleur - # fae15d op 50% Locatie
  • Kleur - # eac500 op 100% locatie

Selecteer deze keer een lineair verloop en teken een verloop van de bovenkant van de selectie naar de onderkant van de selectie.

Stap 22

Selecteer het brandprogramma, waarbij de overige eigenschappen hetzelfde blijven, met uitzondering van het bereik, stel deze in op middentonen en breng penseelstreken aan rond de randen, behalve de bovenkant.

Stap 23

Nu om het glazige effect te creëren: selecteer het pengereedschap, zorg ervoor dat "vormvulling" is geselecteerd en teken de vorm zoals die in de afbeelding, en stel de mengmodus in op zacht licht met een dekking van ongeveer 40%.

Stap 24

Nog twee dingen voordat we klaar zijn met het gedeelte Photoshop.

  • Ten eerste ziet het teksteffect in de map "Menu-aanwijzer" er niet elegant genoeg uit; dus we veranderen de kleur van de slagschaduweigenschap.
    • Beginmenu
      • Kleur: # fff368
      • Dekking: 80%
      • Voeg ook de overlay met kleurovergang toe: # 854406 tot b75a03
    • Services, portfolio en over menu's
      • Kleur: # 78bbff
      • Dekking: 70%
    • Contact Menu
      • Kleur: # f78bb6
      • dekking: 80%
  • Ten tweede heeft de laatste divisie in de menumap geen naastgelegen markering aan de rechterkant; dus we zullen een klein deel van de achtergrondlaag knippen en uitlijnen naast de contact achtergrondlaag. Vervolgens snijden we de afbeelding bij en bewaren we deze.

Eindelijk ziet onze sprite-afbeelding er zo uit:

Stap 25

Nu komt de codeersectie, wat vrij eenvoudig is. Maak een html-bestand en voeg de volgende code toe:

       Geweldig menu   

Hier hebben we een eenvoudig html-bestand gemaakt, dat bestaat uit een ongeordende lijst - onze navigatiebalk. Voordat we verder gaan, laten we een aantal bestanden bekijken die we nu gaan importeren:

  • style.css is het externe CSS-bestand waarin we onze navigatielijst gaan stylen.
  • We hebben jQuery geïmporteerd voor de animatie bij zweven.
  • De jQuery-easing-plug-in wordt ook gebruikt, die we later zullen bekijken.
  • Het is een goede gewoonte om een ​​extern js-bestand voor ons werk te maken, dus dat doen we ook in "sprite.js."

Stap 26

Maak een extern .js-bestand met de naam sprite.js en plak de volgende code.

 $ (function () $ ('# navigation li a'). append (''); // span wiens opacity zal animeren wanneer de muis zweeft. $ ('# navigation li a'). hover (function () $ ('. hover', this) .stop (). anim ('onacity': 1, 700, 'easeOutSine'), functie ( ) $ ('. hover', this) .stop (). anim ('opacity': 0, 700, 'easeOutQuad')));

Wanneer de DOM is geladen, injecteren we een span in onze ankertag; deze overspanning zal daadwerkelijk animeren. Vervolgens animeren we met de zweeffunctie voor de ankertag de dekking van de reeks. Om een ​​vloeiendere animatie te maken, gebruiken we de versnellingsvergelijking. Ik gebruik 'easeoutsine' en 'easeoutquad'; voel je vrij om een ​​alternatieve combinatie te proberen, als je dat wilt.

Stap 27

Nu komt het CSS-gedeelte. Maak het bestand style.css. Hieronder ziet u de eerste afbeelding van hoe het menu eruit ziet. Voorlopig zijn het maar vier punten, omdat we het nog niet hebben gestileerd.

Stap 28

Eerst stemmen we de lijst op elkaar af.

 body background: # 000000;  #navigation margin-left: 250px;  #navigation li float: left; 

We hebben het menu alleen een beetje in het midden verplaatst.

Stap 29

Stijl de ankertag; zijn achtergrond zal onze sprite-afbeelding zijn.

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

De weergavestijl moet worden ingesteld om te blokkeren; Anders wordt er niets weergegeven.

In de volgende stap zullen we elk van hen de juiste positionering geven.

 .home background-position: 0px 0px; width: 102px; hoogte: 70 pixels;  .services background-position: -102px 0px; width: 110px; height: 70px .portfolio background-position: -212px 0px; width: 108px; height: 70px .about background-position: -320px 0px; width: 102px; hoogte: 70 px. contact background-position: -422px 0px; width: 103px; hoogte: 70 px

Hier hebben we de achtergrondpositionering en breedte van elk ankertag ingesteld. De waarden kunnen variëren en het vereist een beetje tijd om perfect te worden.

Stap 30

 #navigation a .hover background: url (images / sprite.jpg) no-repeat; weergave: blok; dekking: 0; positie: relatief; boven: 0; links: 0; hoogte: 100%; breedte: 100%;  #navigation a.home .hover background-position: -0px -72px;  #navigation a.services .hover background-position: -102px -72px;  #navigation a.portfolio .hover background-position: -212px -72px;  #navigation a.about .hover background-position: -320px -72px;  #navigation a.contact .hover background-position: -422px -72px; 

Nu zullen we de CSS definiëren voor de overspanning; dit is dezelfde sprite-afbeelding die hierboven wordt gebruikt. De hoogte en breedte zijn 100% gemaakt zodat deze het hele ankerblok bezet. De achtergrond van elke span-tag wordt aangepast en tot slot is ons werk voltooid.

Stap 31

Merk op dat het enige tijd kost om de positie en breedte-afstemming goed te krijgen; je zou kunnen eindigen met iets andere waarden voor deze kenmerken - en dat is perfect in orde!

CSS Sprites-bronnen

Pff lijkt een hoop werk, maar geweldige dingen kosten tijd om op te bouwen. Hier zijn enkele aanvullende bronnen die u misschien handig vindt.

  • CSS Tricks heeft een geweldige tutorial voor beginners.
  • Te vervelend voor je? Hier is een plug-in die uw sprite-afbeelding converteert naar een menu.
  • Een fan van MooTools? Bekijk deze leuke tutorial.
  • cssSprites.com
  • Volg ons op Twitter of abonneer je op de Nettuts + RSS Feed voor de beste tutorials voor webontwikkeling op internet.