een slider maken

met jQuery

In deze tutorial maak je kennis met jQuery.
In deze tutorials wordt met jQuery een banner gemaakt.
Deze eenvoudige content-banner heeft het script de volgende features:

  • de breedte wordt aangepast aan de beschikbare ruimte;
  • de hoogte wordt ingesteld zodat de afbeeldingen op de
    achtergrond volledig zichtbaar worden;
 
  • het aantal slides (dia's) wordt bepaald;
  • de overgang geanimeerd;
  • de slider stopt met doorschuiven als de muis erboven komt;
  • na vertrek van de muis hervat de beweging weer;
  • delen van de slider zijn klikbaar.
opdracht leerdoelen
  • Maak een banner met afbeeldingen en inhoud van jezelf.
  • Minimaal 5 verschillende slides gebruiken
  • Plaats hem in jouw bewijzenmap onder:
    http://12345.hosts.ma-cloud.nl/bewijzenmap/periode2/dir/banner/
  • Noem het html-ducument index.html
  • Verzorg zelf de opmaak met CSS
  • Gebruik afbeeldingen die onderling dezelfde maat hebben
  • de breedte kan liggen tussen de 900 en 1200px
  • kennismaken met jQuery
  • herhalen van CSS-opmaak
  • inbedden van jQuery scripts
  • stijlen met jQuery
  • animatie
  • herhaling
  • gebeurtenissen: laden en muis-events in jQuery

stap 1: het resultaat en mark-up (00:05:39)

In de HTML (mark-up) is er voor elke dia een section-tag. De dia’s zijn immers onderling gelijkwaardig. Deze section-tag heeft een class en een id. Door de id kan elke dia zijn eigen afbeelding als achtergrond meekrijgen.
Om de section’s zit een div met de class strook. Hierin moeten alle dia’s naast elkaar geplaatst worden.
Om de div.strook zit weer een div.venster, die maar 1 dia tegelijk laat zien.

Slider met jQuery stap 2: de opmaak in CSS (00:15:36)

Hier wordt de pagina en de slider opgemaakt. Daarvoor wordt een stijlblad aangemaakt en gekoppeld. Er is hier als in zoveel web-pagina’s een wrapper-div. Deze krijgt een breedte en wordt daarna met margin: 0 auto; gecentreerd. Via Google-web-fonts krijgen de koppen een karakteristiek web-font.
De div.venster krijgt een maximale breedte, die gelijk is aan de breedte van de afbeeldingen.
In de afzonderlijke .dia sections wordt de achtergrond-afbeelding net zo groot gemaakt dat die de section bedekt. De teksten worden leesbaar gemaakt door een witte kleur met donkere schaduw. Omdat elke section ook een id heeft, kunnen ze ieder hun eigen achtergrond afbeelding krijgen.
Om de aan te geven dat de slider interactief is, geef je de div.strook een cursor:pointer.

Slider met jQuery stap 3: de opmaak afronden (00:06:12)

Het opmaken van de vorige video wordt afgerond. Voor de slider is het van belang dat de sections naast elkaar komen te staan. Dit gaat via float:left;
Om te voorkomen dat de andere elementen van de pagina zich naast de sections nestelen, geven we die een overflow: auto;
In deze video worden ook de h1 en footer, die geen deel uitmaken van de slider opgemaakt. Doe dit naar eigen inzicht ook in jouw training.

Slider met jQuery stap 4: het script koppelen (00:08:11)

Hier worden de scripts gekoppeld. Eerst wordt jQuery gekoppeld. Je kunt het van jquery.com/download/ downloaden, maar op de site staat ook een CDN-link. (CDN = Content Delivery Network) De bezoeker heeft dan sneller toegang tot dit script. alleen voor gevallen je het script niet buiten de site kunt aanroepen zijn de downloads de oplossing.
jQuery is een script dat JavaScript kan stroomlijnen. Jouw eigen script mag pas geladen worden nadat het jQuery script is geladen. Plaats het er dus onder.
In dit voorbeeld staat het script boven de HTML-elementen. Het script zal HTML-elementen selecteren. Daarom moet eerst worden gewacht tot de hele pagina door de browser is ingelezen. Daarom wordt de uitvoering van het script uitgesteld via $(document).ready(). Dit heeft precies dezelfde werking als de addEventListener(‘load’, gaJeGangMaar) in regulier JavaScript.
Hier wordt in het script de breedte van het venster in een variabele gestopt en uitgelezen. Hiermee testen we of de koppeling wel gelukt is. Met $(‘.venster’) wordt in jQuery het element met de class venster geselecteerd. Met .width() bepaal je de breedte.

Slider met jQuery stap 5: afmetingen ophalen en instellen (00:08:00)

Nu de breedte van het venster te bepalen is kunne we die toekennen aan de sections met de class ‘dia’. Je selecteert deze met $(‘.dia’) en met .width() geeft je ze ook breedte. Tussen de haakjes moet de breedte komen en die levert de variabele diaBreedte. De hoogte is ook instelbaar. Deze wordt afgeleid uit de verhouding tussen de hoogte en de breedte van de afbeeldingen. die waarde wordt in height() gestopt. De section.dia wordt niet opnieuw geselecteerd: dat levert onnodige belasting van de computer op. Met $(‘dia’).width().height() gaat dat efficiënter.

Slider met jQuery stap 6: stijlen en animatie (00:05:56)

Met .css() kun je selecties stijlen. tussen de haakjes kun de eigenschap en de waarde opgeven. De eigenschap is veelal een string en moet dus van aanhalingstekens worden voorzien: ‘margin-left’. De waarde kan ook een string zijn bijvoorbeeld ‘-550px’.
het wordt handiger als we een teller als variabele instellen en die vermenigvuldigen met de breedte van een dia. Dan zal bij een heel getal er precies 1 slide verschijnen.
Ook animaties zijn mogelijk met .animate(). Het eerste argument is een object met minimaal 1 eigenschap en een waarde: bijvoorbeeld {‘margin-left’: ‘-550px’} vervolgens wordt de tijdsduur in milliseconde als argument meegegeven.

Slider met jQuery 7: doorlopend animeren (00:05:56)

Om de animatie continue te laten plaatsvinden stoppen we de animatieactie in een functie. Die kun je immers naar believen aanroepen. De waarde waarnaar geanimeerd wordt, is geen string maar wordt bepaald door de breedte van de dia’s en de waarde van de teller.
In de functie wordt teller telkens opgehoogd.
Met setInterval() wordt de functie telkens aangeroepen en de teller verhoogd.
De slider schuift nu continu door. als de laatste dia is bereikt moet de slider worden teruggezet en de teller weer op 0 gezet worden. We doen dit met een if-statement, die controleert of de teller niet te hoog is.

Slider met jQuery 8: acties met de muis (00:05:56)

In jQuery kun je een element selecteren en aangeven wat er moet gebeuren als er op dat element een actie plaatsvindt. We gaan hier met de muis over en weer ervan af. Dit gaat met $(‘betreffendElement’).mouseenter().mouseleave();
tussen de haakjes bij de events vertel je via een anonieme functie wat er moet gebeuren. Voor een muisklik is dat $(‘betreffendElement’).click();
De selectie van het element heb je in eerder video’s in deze tutorial al gezien. Voor de acties die tussen de haakjes geplaatst worden komen we hier de clearInterval() tegen, warbij tussen de haakje de variabele staat, die de setInterval aanschakelde. Ook de setInterval() komt weer terug.
een bijzondere is hier de url-eigenschap. Van $(location).attr() zet je het type op ‘href’ en als waarde geef je de url tussen quotes weer: $(location).attr('href', 'http://nl.wikipedia.org/wiki/Scheepvaarthuis');


Zet deze training online in je bewijzenmap als
http://12345.hosts.ma-cloud.nl/bewijzenmap/periode2/dir/banner/ met als naam index.html