IMPORTANT La correction du TP
css {guide: lines;}
https://cssguidelin.es/ et https://cssreference.io/Les fichiers sont disponibles dans l’archive DIU-EIL-WEB-fichiers.zip
:
DIU-EIL-WEB.html
dans votre navigateur Firefox (ou Chromium, c’est très proche)DIU-EIL-WEB.html
, DIU-EIL-WEB.js
et DIU-EIL-WEB.css
avec votre éditeur.Dans l’onglet de DIU-EIL-WEB.html
, ouvrez les outils de développement (F12) de Firefox. Utilisez les outils du développeur pour répondre aux questions suivantes :
Editez ensuite DIU-EIL-WEB.html
pour l’indenter selon la structure arborescente du contenu HTML.
python3 -m http.server 5000
(pour le port 5000).pip install -U livereload
et qui se lance avec livereload -p 5000 .
Téléchargez les règles du jeu et ajoutez une partie de ces règles à la page HTML dans la section 2 en respectant la structure du document.
A ce stade, la mise en forme sera différente, mais cherchez surtout à reproduire la structure logique du document.
Modifiez DIU-EIL-WEB.css
en s’inspirant de la mise en forme ci-dessous, pour cela :
background-color
text-align
a:hover
pour changer la couleur des liens du menu lors d’un survoldisplay: flex
ou display: table
pour créer le menu sur la gaucheL’interface doit rester adaptable à la taille du dispositif, sans zone de taille fixe.
display : inline;
avec un positionnement float:left
soit des flexbox
Allez dans l’onglet console des outils de développement :
console.log(fibonacci(10));
,DIU-EIL-WEB.js
,fibonacci
dans DIU-EIL-WEB.js
,DIU-EIL-WEB.js
afficher sa valeur dans la console.range
, presque comme en PythonOn veut écrire une fonction qui fait comme la fonction range()
de Python.
Avec l’API des tableaux et une boucle for
écrire la fonction range(stop, [start], [step])
qui prend trois arguments en paramètre et renvoie le tableau des entiers compris entre start
(inclus) et stop
(exclu) avec un pas de step
:
start
n’est pas défini, sa valeur par défaut est 0;step
n’est pas défini, sa valeur par défaut est 1;stop
est inférieur ou égal à start
, alors le tableau vide est retourné.Testez votre fonction dans la console. Vous pouvez utiliser les arguments par défaut ES6
range(10, 0) == range(10) == [0,1,2,3,4,5,6,8,9]
range(10, 4, 2) == [4,6,8]
range(-2, 0)=[]
#btn-exec
? Où est-ce fait dans le code JavaScript ?#btn-exec
à la place de l’éxistante. Cette fonction demandera à l’utilisateur de saisir une chaîne et remplacera le texte du bouton par la chaîne saisie.range
Ajoutez les handlers pour faire fonctionner le formulaire fourni pour la fonction range
, pour cela, dans une fonction :
<input>
de saisie avec document.getElementById
Number.parseInt
, convertir les saisies en entiers et gérer les cas d’erreurs avec Number.isNaN
range
avec les paramètres fournis puis convertissez le résultat en chaine avec JSON.stringify
<code id="output">
<code id="output">
document.querySelectorAll
et avec un sélecteur CSS et l’attribut Element.innerHTML
, comptez le nombre d’éléments <li>
qui sont dans le menu <nav>
<nav>
. Vous utiliserez pour cela document.querySelectorAll
Remarque : dans le handler d’un événement, vous pouvez faire référence à l’élément HTML en question avec this
Dans la feuille de style, une classe dot
permet d’afficher un point. On va utiliser cette classe pour traquer le curseur de la souris en affichant le point dessous.
div
avec la classe dot
follow_mouse()
qui aura le comportement suivant :
mouse_pos
qui va stocker la position courante de la sourismousemove
un handler qui met à jour mouse_pos
setInterval
une fonction qui lit mouse_pos
et positionne le point sous le curseur en modifiant les attributs CSS left
et top
du div
Pour aller plus loin, ajoutez un bouton et lors d’un clic, faites en sorte :
classList.toggle("invisible");
avec une classe qui rend les élements invisiblesLe Konami Code est la séquence de touches suivante : ↑ ↑ ↓ ↓ ← → ← → B A. Faites en sorte que quand ce code est saisie au clavier, la page web affiche un popup.
Utilisez pour cela le gestionnaire d’événement onkeydown
l’attribut [key
}(https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) de l’événement pour déjà afficher toutes les frappes clavier.
Pour savoir où vous en êtes dans l’avancement de la saisie du Konami Code, utilisez une fermeture, voir notamment l’exemple Emulating private methods with closures de MDN
Vous pouvez reprendre la partie interface dynamique de la plate-forme de TP 2018-2019.