Frontend samenvatting Eloquent Javascript hoofdstuk 14 - norakramer1/blokTech GitHub Wiki
Chapter 14 Document Object Model (DOM)
Trees
Een data Structure noem je een boom, het heeft veel takken maar 1 stam: document.documentElement
DOM Nodes hebben een nodeType property met een nummer die de node identificeert (elementen hebben code: 1, text heeft code: 3)
Elementen
Als je een specifiek element wil vinden kun je dit beter niet doen door document.body…. te schrijven, het kan zijn dat je de structuur later veranderd en de code niet meer werkt.
Alle Node elementen hebben een getElementsByTagName Method die alle elementen met die tag verzameld en in een soort array object zet
Nodes hebben een Remove method om ze uit de parent node te halen appendChild = toevoegen aan het einde insertBefore = voegt node toe voor de vorige replaceChild = Child node vervangen met een andere createTextNode = text node maken
Attributes
Attributen kunnen gebruikt worden door de property met de dezelfde naam aan te spreken, je kunt de nodes zelf een naam geven en er meer informatie in opslaan maar het is recommended om er altijd data- voor te zetten
getAttribute en setAttribute zijn de methods die je hier voor gebruikt
Layout
in elk document kan de browser bepalen welke elementen inline of block zijn, en de grootte bepalen door de content. De grootte en positie van een element kan ook Javascript ook bepaald worden met offsetWidth en offsetHeight
clientWidth and clientHeight geven je ze grootte van de ruimte in een element zonder de border.
De meest effectieve manier om de precieze locatie van een element te zien is met de getBoundingClientRect method, je krijgt hiermee de top, bottom, left en right waardoor je de pixel positie van het element relatief aan de top links van heet scherm, pageXOffset en pageYOffset gebruik je om de scroll position te bepalen.
CSS
querySelector method gebruik je om 1 specifiek element aan te spreken
Animatie
Met requestAnimationFrame kun je de animaties timen wanneer de browser opnieuw laad.