Professional Documents
Culture Documents
Gestion dvnements :
Prendre en charge un vnement = lui affecter une fermeture JavaScript
Mcanisme particulier dinhibition/propagation dvnements (le bullage).
Pour dclencher un vnement : setTimeout (pour le tour prochain).
retenir :
Les calculs longs bloquent le chargement de la page.
Seul le DOM de la partie avant le script est disponible.
La boucle peut mme dmarrer avant le chargement complet.
Il ne suffit pas dutiliser setTimeout pour tre sr que le DOM est prt.
Astuce classique : utiliser les vnements onload ;
ou insrer les scripts la fin du document.
Nouveauts HTML5 :
async , le script est excut ds quil est tlcharg
defer , le script est excut une fois le document complet
Commentaires : /* ... */
Slecteurs de base :
xxx cible les lments <xxx>...</xxx> .
#xxx cible les lments avec lattribut id="xxx" .
.xxx cible les lments avec lattribut class="... xxx ..." .
Attention, on ne slection que les lments, pas les nuds texte.
Pour personnaliser une partie de texte, on peut la mettre dans un <span> .
Par exemple,
le slecteur div#saucisse.com
slectionne llment <div id="saucisse" class="com"></div> .
On peut inverser un slecteur avec :not(selecteur) .
Exemple : :not(div) slectionne tous les lments sauf les divs.
Deux slecteurs spars par une espace sel1 sel2 signifient que :
llment cible doit tre slectionn par sel2 ,
un de ses anctre doit tre slectionn par sel1 .
En ralit, on peut dcrire un chemin complet dans larbre :
par exemple div#main h1 a { color: red; }
colore en rouge slection les liens dans les titres du div lid main .
Oprateurs de chemin :
sel1 sel2 : un anctre de llment doit vrifier sel1
sel1>sel2 : le parent de llment doit vrifier sel1
sel1+sel2 : le frre juste gauche de llment doit vrifier sel1
sel1~sel2 : un frre gauche de llment doit vrifier sel1
o llment cible doit vrifier sel2 , qui nest pas un oprateur de chemin.
noter :
Les chemins ne peuvent que descendre ou avancer.
On slectionne toujours le dernier lment de chemin.
Par exemple, voir mette en valeur la cible dun lien une fois cliqu :
On identifie la partie cible <div id="sec4">...</div> .
On insre un lien vers cette ancre Voir <a href="#sec4">section 4</a>.
On met en valeur la cible div:target { background: yellow; } .
Slecteurs de position :
:first-child , llment est le premier fils de son parent
:nth-child(an+b) , n. llment est le a nime + b fils de son parent
:only-child , :last-child , :nth-last-child(n)
:only-of-type , :first-of-type , :last-of-type ,
:nth-of-type(n) , :nth-last-of-type(n)
top (1)
right (2)
left (4)
bottom (3)
Marges :
margin: top right bottom left , valeurs ngatives autorises !
padding: top right bottom left
Fond :
background-image: image, ...
background-color: couleur, ...
background-position: x y
background-size: width height
background-repeat: no-repeat|repeat|repeat-x|repeat-y
Fonte personnalise :
1 : @font - face {
2 : font - family : mafonte ;
3 : src : url ( ma_fonte . woff) ;
4 : }
Plusieurs fournisseurs de fontes sur le Web (ex : google fonts).
Les images :
url('url') , y compris url('data:image/gif;base64,...')
linear-gradient(0..360deg|to top..., color pos, color pos, ...)
radial-gradient(...) attention, kitsch assur !
Les longueurs :
px : pixels virtuels ( 200%, un px prend 4 vrais pixels)
ex : hauteur dun x
em : largeur dun m
Les effets :
transform: scale(0..1)|scaleX(0..1)|scaleY(0..)|rotateX(ndeg)
filter: blur(radius) | contrast(pct)| ... (effets SVG)
background-blend-mode
blend-mode: normal|multiply|screen|overlay|...
text-shadow: x y radius color
box-shadow: x y spread radius color
Modes spciaux :
inline-block : permet dinclure un bloc dans une ligne.
none : lelment napparait pas du tout
(diffrent de visibility: hidden ou opacity: 0 ).
run-in : choisit selon le contexte
(par exemple block dans un div mais inline dans un p ).
Simulation de tableaux et listes :
list-item , table , table-cell , table-row , etc.
inline-table : permet dintgrer un tableau au milieu dune ligne.
Quelques exemples :
Trois cas :
position: static par dfaut
position: relative
position: absolute
Attention,
tous les attributs ne sont pas animables ;
toutes les valeurs ne sont pas animables
(ex. seules les tailles absolues).
Exemple de dfinition
1 : @keyframes monAnimation {
2 : 0% { width : 50 px }
3 : 0% { width : 150 px }
4 : }
Raccourci : animation: monAnimation 1s alternate ease-in-out
Principalement du multimdia :
Canvas, dessin 2D
WebGL, dessin 3D
Web Audio, API de synthtiseur numrique
GamePad, gestion de priphriques dentee
WebRTC, visioconfrence
Golocalisation
Exemple :
1 : for ( var elt of document . querySelectorAll ( " span " )) {
2 : elt . style . border = '13 px red dotted ' ;
3 : }
Fichier add_worker.js :
1 : onmessage = function ( e) {
2 : postMessage ([ parseInt ( e. data [0 ])
3 : + parseInt ( e. data [1 ]) ] )
4 : }
Options avances :
Transfert dobjets au lieu de copie
Terminaison interne ( close ) ou externe ( terminate )
Des variantes :
SharedWorker communication entre fentres
ServiceWorker interception des XHR
AudioWorkerNode gnration de son en tche de fond
Combinaison sequentielle :
la mthode then renvoie une promesse ;
les fonctions de rappel peuvent renvoyer directement cette promesse ;
sinon, cest une promesse tenue, avec la valeur du return ;
ou une promesse rompue, avec la valeur du throw ;
si une des fonctions des undefined , la promesse parente.
Mthodes utilitaires :
Promise.resolve(result) ,
Promise.reject(Error(message)) ,
. catch(f) signifie .then(undefined,f) .
Combinaison de promesses :
Promise.all
prend un tableau de promesses,
renvoie la promesse tenue du tableau des rsultats,
ou la promesse rompue dun des checs.
Promise.race
prend un tableau de promesses,
renvoie la promesse tenue dun des rsultats,
ou la promesse rompue dun des checs.