Efficiënt scripten met jQuery 3.x
  • Over deze cursus
  • 1 Inleiding
  • 2 Inleiding tot JavaScript
    • Events en Actions
    • Syntax regels
    • JavaScript debugger
    • Variabelen
    • Operatoren
    • Voorwaardelijke instructies
    • Lussen
    • Functies
    • Functies in jQuery
    • Scope (zichtbaarheid) van variabelen
    • Objecten
    • Ingebouwde JavaScriptobjecten
  • 3 jQuery basis
  • 4 Elementen selecteren
    • Basis selectors
    • Hiërarchische selectors
    • Basisfilters
    • Inhoudsfilters
    • Attribuut selectors
    • Childfilters
    • Formulierfilters
    • Zichtbaarheidsfilters
    • Toepassing 1: gemeentelijst filteren (basisversie)
    • Toepassing 2: openingsuren markeren
  • 5 Selectie verfijnen (traversing)
    • Hiërarchische selectors
    • Filter methodes
    • Element looping: each()
    • Selecties in cascade: end()
    • Snelheidstest
    • Toepassing 1: gemeentelijst filteren (uitgebreide versie)
    • Toepassing 2: rating
  • 6 Events
    • Documentevents
    • Gebruikersevents
    • Event bubbling
    • Event methodes en properties
    • Hover-event: methode met een dubbele functie
    • De methode on()
    • Event handlers verwijderen
    • Toepassing 1: reactietest
  • 7 Animaties en effecten
    • Basiseffecten
    • Aangepaste animaties
    • Animatie pauzeren: delay()
    • Animatie beëindigen: finish()
    • Animatie afbreken: stop()
    • Versnellingsparameter
    • Toepassing 1: vloeiend scrollen
    • Toepassing 2: tabbladen
  • 8 DOM manipulatie
    • HTML-attributen
    • Object dimensies
    • Elementen toevoegen
    • Elementen verwijderen
    • Elementen vervangen
    • Elementen klonen
    • Toepassing 1: lightbox
  • 9 Inleiding tot AJAX
    • Historiek
    • Wat is XML?
    • Wat is JSON?
    • Requests filteren met GET en POST
    • Zes soorten AJAX requests
    • Same origin policy
    • Cross-site scripting
  • 10 AJAX zonder server-side scripting
    • Load()
    • $.getScript()
    • $.getJSON()
    • $.get() en $.post()
    • $.ajax()
    • Externe gegevens ophalen via JSONP
  • 11 AJAX met server-side scripting
    • Master/detailrelatie met load()
    • Master/detailrelatie met $.get()
    • Contactformulier verzenden met $.post()
    • Cross-site scripting (XSS)
Powered by GitBook
On this page
  1. 7 Animaties en effecten

Versnellingsparameter

PreviousAnimatie afbreken: stop()NextToepassing 1: vloeiend scrollen

Last updated 7 years ago

De versnelling of Easing-parameter bepaalt volgens welke curve de animatie verloopt. jQuery kent maar twee versnellingsparameters: linear en swing (de default waarde). Onderstaande grafieken tonen het snelheidsverloop in functie van de tijd.

Indien u de easing-plugin installeert, kan u nog tientallen extra versnellingsparameters gebruiken. Info en download:

★ Open animaties/versnellingsfunctie.html. ★ Bekijk de animaties en test het resultaat in een browser.

<div class="select">
    <select id="easing">
        <optgroup label="jQuery Core">
            <option value="linear">linear</option>
            <option value="swing">swing</option>
        </optgroup>
        <optgroup label="jQuery easing plugin">
            <option value="easeInOutBounce">easeInOutBounce</option>
            <option value="easeInOutQuart">easeInOutQuart</option>
            <option value="easeInOutCubic">easeInOutCubic</option>
            <option value="easeInOutQuint">easeInOutQuint</option>
            <option value="easeInOutSine">easeInOutSine</option>
            <option value="easeInOutExpo">easeInOutExpo</option>
            <option value="easeInOutCirc">easeInOutCirc</option>
            <option value="easeInOutElastic">easeInOutElastic</option>
            <option value="easeInOutBack">easeInOutBack</option>
        </optgroup>
    </select>
    <i class="fa fa-angle-down fa-2"></i>
</div>
...
<h3>Easing effect = <span id="effect">...</span></h3>
...
<script src="../js/jquery.easing.1.3.js"></script>
<script>
    $(function() {
        var hoogte = $('#div1').height(); 
        var snelheid = 1000;
        $('#easing').change(function(){ 
            var easing = $(this).val();
            $('#effect').text(easing);
            $('#div1').animate({height:120}, snelheid, easing)
                .delay(300)
                .animate({height:hoogte}, snelheid, easing);
        }); 
    });
</script>

De eerste lijn linkt naar de easing-plugin zodat we de nieuwe versnellingsparameters kunnen gebruiken in onze animaties.

Het script bevat drie variabelen. In de variabele hoogte plaatsen we de werkelijke hoogte van de #div1. Dit gebeurt met de getter-functie height(). Als we eventueel later de inhoud van #div1 aanpassen, wordt ook de werkelijke hoogte van #div1 automatisch herrekend.

In de variabele easing bewaren we de versnellingsparameter. Telkens we een andere waarde uit de lijst met ID easing selecteren, wordt deze waarde uitgelezen en in de variabele easing bewaard. De gekozen waarde wordt ook zichtbaar op de pagina. $('#effect').text(easing) plaatst de waarde als tekst binnen de span-tag effect.

Nu de animatie zelf. $('#div1').animate({height:100}, snelheid, easing) maakt #div1 120 pixels hoog. De verplaatsing gebeurt volgens de gekozen versnelling. Vervolgens wachten we 0,3 seconden delay(300) om daarna terug naar de originele hoogte te animeren via animate({height:hoogte}, snelheid, easing);

De easing-plugin bevat meer versnellingsparameters dan deze in de keuzelijst. Indien u de jQuery-UI-plugin gebruikt, hoeft u de easing-plugin niet meer apart te linken. De volledige easing-plugin zit namelijk geïntegreerd in de jQuery-UI-plugin.

http://gsgd.co.uk/sandbox/jquery/easing/