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. 8 DOM manipulatie

Object dimensies

PreviousHTML-attributenNextElementen toevoegen

Last updated 7 years ago

jQuery kent enkele handige methodes om de afmetingen van een object op te vragen en zijn positie binnen de pagina te bepalen.

★ Open dom/dimensies.html en bekijk de broncode. ★ Test de pagina in een browser.

De acht laatste getallen zijn verschillend op Mac en op Windows. Beide sytemen gebruiken immers een verschillend lettertype! Bovenstaande afbeelding toont de Windows-dimensies.

<style type="text/css">
#sect1 {
    width: 300px; 
    float:left;
    border: solid 4px lightGrey; 
    padding: 10px;
    margin: 5px 5px 10px 5px; 
    cursor: text;
}
...
</style>
$('#sect1').on('mouseleave keyup', function(){ 
     toonEigenschappen();
});
$('#sect1').mouseleave();
$('#width').click(function() {
    $('#sect1').width('400px'); 
    toonEigenschappen();
});
$('#innerWidth').click(function() {
    $('#sect1').innerWidth('400px'); 
    toonEigenschappen();
});
$('#outerWidth').click(function() {
    $('#sect1').outerWidth('400px'); 
    toonEigenschappen();
});
$('#outerWidthTrue').click(function() {
    $('#sect1').outerWidth('400px', true); 
    toonEigenschappen();
});
$('#height').click(function() {
    $('#sect1').height('400px').css('overflow', 'auto'); 
    toonEigenschappen();
});
$('#offset').click(function() {
    $('#sect1').offset({top:150, left:30}); 
    toonEigenschappen();
});
function toonEigenschappen(){ 
    sec = $('#sect1');
    eigenschappen = 'width(): '+sec.width()+'<br>'; 
    eigenschappen += 'innerWidth(): '+ sec.innerWidth() + '<br>';
    eigenschappen += 'outerWidth(): '+ sec.outerWidth() + '<br><br>'; 
    eigenschappen += 'outerWidth(true): '+ sec.outerWidth(true) + '<br>'; 
    eigenschappen += 'height(): '+ sec.height() + '<br>';
    eigenschappen += 'innerHeight(): '+ sec.innerHeight() + '<br>'; 
    eigenschappen += 'outerHeight(): '+ sec.outerHeight() + '<br>'; 
    eigenschappen += 'outerHeight(true):'+ sec.outerHeight(true) + '<br>'; 
    eigenschappen += 'offset().left: '+ sec.offset().left + '<br>'; 
    eigenschappen += 'offset().top : '+ sec.offset().top + '<br>'; 
    eigenschappen += 'position().left: '+ sec.position().left + '<br>'; 
    eigenschappen += 'position().top: '+ sec.position().top +'<br>';
    $('#sect1 p:first').html(eigenschappen);
}

Zowel de breedte als de hoogte van een element kunnen we bepalen aan de hand van vier methodes. Voor de breedte zijn dit:

  • width(): de breedte van de box (500px).

  • innerWidth(): breedte + padding (500px + 2x10px = 520px).

  • outerWidth(): breedte + padding + rand (520px + 2x4px = 528px).

  • outerWidth(true): breedte + padding + rand + margin (528px + 2x5px = 538px).

De positie van de linkerbovenhoek van een object kunnen we als volgt bepalen:

  • offset().left en offset().top geven respectievelijk de X- en Y-coördinaat van het object ten opzichte van de body-tag.

  • position().left en position().top geven de X- en Y-coördinaat ten opzichte van het dichtstbijzijnde parent element dat ZELF gepositioneerd staat.

    In ons voorbeeld geeft position() de afstand ten opzichte van de body-tag.

★ Voeg aan het document volgende stijlregel toe: main {position:relative;} ★ Klik op de offset knop.

U zal merken dat de waardes voor offset() niet wijzigen. De waardes voor position() worden nu herrekend naar de main-tag.

Enkel width(), height() en offset() kennen een setter-functie.