TP Sin Création Page html5 Javascript (Cours)
TP Sin Création Page html5 Javascript (Cours)
TP Sin Création Page html5 Javascript (Cours)
<!DOCTYPE html>
2<html>
3 <head>
4 <link rel="icon" type="image/png" href="icone.png" />
5 <meta charset="utf-8" />
6 <title>Titre</title>
7 </head>
8
9 <body>
10
11 </body>
12</html>
2. Le langage CSS
Les CSS, Cascading Style Sheets (feuilles de styles en cascade), servent à mettre en forme des documents web, type
page HTML ou XML, par l'intermédiaire de propriétés d'apparence (couleurs, bordures, polices, etc.) et de placement
(largeur, hauteur, côte à côte, dessus-dessous, etc.).Le rendu d'une page web peut être intégralement modifié sans
aucun code supplémentaire dans la page web.
C’est le contenu, <link rel="stylesheet" href="style.css" /> : qui indique que le fichier HTML est associé à un fichier
appelé style.css qui est chargé de la mise en forme.
@charset "utf-8";
/* CSS Document */
p
{
color: red;
}
On obtient :
3. Le langage javascript
3.1. Présentation
Le JavaScript (souvent abrégé JS) est un langage de programmation de scripts principalement utilisé dans les pages
web interactives mais aussi côté serveur. C’est un langage orienté objet à prototype, c’est-à-dire que les bases du
langage et ses principales interfaces sont fournies par des objets .
3.2. Introduction
<!doctype html>
<html>
<head>
<meta charset="utf-8"> Code javascript
<title>cours javascript</title></head>
<body>
<script type="text/javascript">
alert('bonjour sur le cours java');
</script>
</body>
</html>
Dans le code HTML donné précédemment, on remarque quelques nouveautés.
Tout d'abord, un élément <script> est présent : c'est lui qui contient le code Javascript que voici :
Il s'agit d'une instruction, c'est-à-dire une commande, un ordre, ou plutôt une action que l'ordinateur va devoir
réaliser. Les langages de programmation sont constitués d'une suite d'instructions qui, mises bout à bout,
permettent d'obtenir un programme ou un script complet.
Dans cet exemple, il n'y a qu'une instruction : l'appel de la fonction alert().
alert() est une instruction simple, appelée fonction, qui permet d'afficher une boîte de dialogue contenant un
message. Ce message est placé entre apostrophes, elles-mêmes placées entre les parenthèses de la fonction alert().
Il existe deux méthodes pour intégrer du java script dans une page html :
Dans la page (présentation ci-dessus)
Externe : on fait appel à une page ayant l’extension .js
Ce fichier est ensuite appelé depuis la page Web au moyen de l'élément <script> et de son attribut src qui contient
l'URL du fichier .js. Voici un exemple :
<body>
<script src="http://mrdoob.github.com/three.js/build/three.min.js"></script>
La syntaxe du Javascript n'est pas compliquée. De manière générale, les instructions doivent être séparées par un
point-virgule que l'on place à la fin de chaque instruction :
Instruction1 ;
Instruction2 ;
Pour faire simple, une variable est un espace de stockage sur votre ordinateur permettant d'enregistrer tout type de
donnée, que ce soit une chaîne de caractères, une valeur numérique ou bien des structures un peu plus
particulières.
Déclarer une variable sert à lui réserver un espace de stockage en mémoire. Une fois la variable déclarée, vous
pouvez commencer à y stocker des données sans problème.
Le nom d'une variable ne peut contenir que des caractères alphanumériques, autrement dit les lettres de A à Z et les
chiffres de 0 à 9 ; l'underscore (_) et le dollar ($) sont aussi acceptés. Autre chose : le nom de la variable ne peut pas
commencer par un chiffre et ne peut pas être constitué uniquement de mots-clés utilisés par le Javascript.
var myVariable;
Le Javascript étant un langage sensible à la casse, faites bien attention à ne pas vous tromper sur les majuscules et
minuscules.
Le mot-clé var est présent pour indiquer que vous déclarez une variable. Une fois celle-ci déclarée, il ne vous est plus
nécessaire d'utiliser ce mot-clé pour cette variable et vous pouvez y stocker ce que vous souhaitez :
var myVariable;
myVariable = 2;
var myVariable = 2;
Le signe = sert à attribuer une valeur à la variable .Quand on donne une valeur à une variable, on dit que l'on fait
une affectation, car on affecte une valeur à la variable.
Lorsqu’il y a plusieurs variables à déclarer, il est possible de les déclarer en même temps.
Contrairement à de nombreux langages, le Javascript est un langage typé dynamiquement. Cela veut dire, que toute
déclaration de variable se fait avec le mot-clé var sans distinction du contenu. On peut y mettre n’importe quel type
de données numérique ou texte.
o Le type numérique : il représente tout nombre, que ce soit un entier, un négatif, un nombre
scientifique, etc.:
var number = 5;
Dans une programmation, on a besoin des fois de faire des calculs. Faire des calculs en programmation est
quasiment tout aussi simple que sur une calculatrice, exemple :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript</title>
</head>
<body>
<script type="text/javascript">
var result = 3 + 2;
alert(result); // Affiche : « 5 »
</script>
</body>
</html>
Avec deux variables contenant elles-mêmes des nombres :
var number = 3;
number = number + 5;
alert(number); // Affiche : « 8 »
Ce n'est pas spécialement long ou compliqué à faire, mais cela peut devenir très vite rébarbatif, il existe donc une
solution plus simple pour incrémenter :
var number = 3;
number += 5;
alert(number); // Affiche : « 8 »
Ce code a exactement le même effet que le précédent mais est plus rapide à écrire.
Remarque :
On peut aussi utiliser le signe + lorsqu’on veut ajouter du texte (concaténation)
Attention :
Tout ce qui est écrit dans le champ de texte de prompt() est récupéré sous forme d'une chaîne de caractères, que ce
soit un chiffre ou non. Du coup, si vous utilisez l'opérateur +, vous ne ferez pas une addition mais une concaténation.
Pour résoudre le problème, il suffit de convertir la chaîne de caractères en nombre. Pour cela, vous allez avoir besoin
de la fonction parseInt() qui s'utilise de cette manière :
Correction :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript</title>
</head>
<body>
<script type="text/javascript">
var chiffre1 = prompt('Rentrer un premier chiffre:');
var chiffre2 = prompt('Rentrer un deuxième chiffre:');
var resultat=parseInt(chiffre1)+parseInt(chiffre2);
alert('le résultat est égal à '+resultat); // Afficher le résultat »
</script>
</body>
</html>
if (true) {
alert("Ce message s'est bien affiché.");
}
if (false) {
alert("Pas la peine d'insister, ce message ne s'affichera pas.");
}
Le code d'une condition est exécuté si le booléen reçu est true alors que false empêche l'exécution du code.
Opérateur Signification
== égal à
!= différent de
> supérieur à
< inférieur à
Exercice :
On veut contrôler si deux valeurs sont égales :
Correction :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript1</title>
</head>
<body>
<script type="text/javascript">
var chiffre1 = prompt('Rentrer un premier chiffre:');
var chiffre2 = prompt('Rentrer un deuxième chiffre:');
if (chiffre1 != chiffre2) {
alert("Les deux chiffres ne sont pas égaux.");
}
if (chiffre1 = chiffre2) {
alert("Les deux chiffres sont égaux.");
}
</script>
</body>
</html>
Je clique sur OK
Comme vous pouvez le constater, le code s'exécute lorsque vous cliquez sur le bouton OK et ne s'exécute pas
lorsque vous cliquez sur Annuler. En clair : dans le premier cas la fonction renvoie true et dans le deuxième cas elle
renvoie false.
Exercice ci-dessus :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript1</title>
</head>
<body>
<script type="text/javascript">
var chiffre1 = prompt('Rentrer un premier chiffre:');
var chiffre2 = prompt('Rentrer un deuxième chiffre:');
if (chiffre1 != chiffre2) {
alert("Les deux chiffres ne sont pas égaux.");
}
else {
alert("Les deux chiffres sont égaux.");
}
</script>
</body>
Prenons un exemple : nous avons un meuble avec quatre tiroirs contenant chacun des objets différents, et il faut que
l'utilisateur puisse connaître le contenu du tiroir dont il entre le chiffre. Si nous voulions le faire avec if else ce serait
assez long et fastidieux :
Fonctionnement :
On écrit le mot-clé switch suivi de la variable à analyser entre parenthèses et d'une paire d'accolades ;
Dans les accolades se trouvent tous les cas de figure pour notre variable, définis par le mot-clé case suivi de
la valeur qu'il doit prendre en compte (cela peut être un nombre mais aussi du texte) et de deux points ;
Tout ce qui suit les deux points d'un case sera exécuté si la variable analysée par le switch contient la valeur
du case ;
À chaque fin d'un case on écrit l'instruction break pour « casser » le switch et ainsi éviter d'exécuter le reste
du code qu'il contient ;
Enfin on écrit le mot-clé default suivi de deux points. Le code qui suit cette instruction sera exécuté si aucun
des cas précédents n'a été exécuté. Attention, cette partie est optionnelle, vous n'êtes pas obligés de
l'intégrer à votre code.
4. Les fonctions
Caractéristiques :
function myFunction(arguments) {
// Le code que la fonction va devoir exécuter
}
Le mot-clé function est présent à chaque déclaration de fonction. C'est lui qui permet de dire « Voilà, j'écris ici une
fonction ! » ;
Vient ensuite le nom de votre fonction, ici myFunction ;
S'ensuit un couple de parenthèses contenant ce que l'on appelle des arguments. Ces arguments servent à fournir
des informations à la fonction lors de son exécution. Par exemple, avec la fonction alert() quand vous lui passez en
paramètre ce que vous voulez afficher à l'écran ;
Et vient enfin un couple d'accolades contenant le code que votre fonction devra exécuter.
Il est important de préciser que tout code écrit dans une fonction ne s'exécutera que si vous appelez cette dernière
(« appeler une fonction » signifie « exécuter »). Sans ça, le code qu'elle contient ne s'exécutera jamais.
Attention :
Toute variable déclarée dans une fonction n'est utilisable que dans cette même fonction ! Ces variables spécifiques à
une seule fonction ont un nom : les variables locales.
function myFunction(arg) {
alert('Votre argument : ' + arg);
}
myFunction(prompt('Que souhaitez-vous passer en argument à la fonction ?'));
<script type="text/javascript">
function moar(first, second) {
// On peut maintenant utiliser les variables « first » et « second » comme on le souhaite :
alert('Votre premier argument : ' + first);
alert('Votre deuxième argument : ' + second);
}
</script>
<div id="bouton2"><button onclick="moar(1,2)">Rentrer les valeurs</button></div>
</body>
Il y a deux manières de modifier le CSS d'un élément HTML, nous allons ici utiliser la méthode la plus simple et la plus
utilisée : l'utilisation de la propriété style.
Pour accéder à la propriété style de notre élément nous allons utiliser la même manière que pour accéder à
n'importe quelle propriété de notre élément :
On écrit d’abord « element.style » pour accèder à la propriété « style » de l'élément « element »
Une fois que l'on a accédé à sa propriété, on écrit en suivant le nom de la propriété et le paramètre.
Exemple :
Attention :
En Javascript, les tirets sont interdits dans les noms des propriétés.
La solution est de supprimer les tirets et chaque mot suivant normalement un tiret voit sa première lettre devenir
une majuscule.
Ainsi.
Correction :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript1</title>
<style type="text/css">
#couleur {
position: fixed;
top: 10px;
left: 10px;
z-index:10;
background-color:#FB0C10;
}
#bouton1 {
position: fixed;
top: 40px;
left: 10px;
z-index:10;
}
#bouton2
{position:fixed;
top:80px;
left: 10px;
z-index:10;
}
</style>
</head>
<body>
<script type="text/javascript">
function rouge(){
couleur.style.backgroundColor='red';
}
function bleu(){
couleur.style.backgroundColor='blue';
}
</script>
<div id="couleur" >bonjour</div>
<div id="bouton1"><button onclick="rouge();">fond rouge</button></div>
<div id="bouton2"><button onclick="bleu();">fond bleu</button></div>
</body>
</html>
Deuxième exrecice :
Remarque :
Pour récupérer la valeur du chiffre et l’afficher dans le paragraphe id= ‘’text ‘’, on utilisera la fonction :
document.getElementById("text").innerHTML=chiffre;
Correction:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript1</title>
<style type="text/css">
#bouton1 {
position: fixed;
top: 40px;
left: 10px;
z-index:10;
}
</style>
</head>
<body>
<script type="text/javascript">
var chiffre;
function moar() {
chiffre = prompt('Rentrer un chiffre:');
document.getElementById("text").innerHTML=chiffre;
}
</script>
<div id="bouton1"><button onclick="moar()">Rentrer le chiffre</button></div>
<div id="main">
<p>le chiffre est : <span id="text"></span></p>
</div>
</body>
</html>
Pour faire fonctionner une boucle, il est nécessaire de définir une condition. Tant que celle-ci est vraie (true), la
boucle se répète. Dès que la condition est fausse (false), la boucle s'arrête.
var number = 1;
while (number < 10) {
number++;
}
alert(number); // Affiche : « 10 »
Au départ, number vaut 1. Arrive ensuite la boucle qui va demander si number est strictement plus petit que 10.
Comme c'est vrai, la boucle est exécutée, et number est incrémenté. À chaque fois que les instructions présentes
dans la boucle sont exécutées, la condition de la boucle est réévaluée pour savoir s'il faut réexécuter la boucle ou
non. Dans cet exemple, la boucle se répète jusqu'à ce quenumber soit égal à 10. Si number vaut 10, la
condition number < 10 est fausse, et la boucle s'arrête. Quand la boucle s'arrête, les instructions qui suivent la
boucle (la fonction alert() dans notre exemple) sont exécutées normalement.
Pour arrêter une boucle en cours de fonctionnement, on peut utiliser la fonction break
5.2. La boucle do wile
Elle ressemble très fortement à la boucle while, sauf que dans ce cas la boucle est toujours exécutée au moins une
fois. Dans le cas d'une boucle while, si la condition n'est pas valide, la boucle n'est pas exécutée. Avec do while, la
boucle est exécutée une première fois, puis la condition est testée pour savoir si la boucle doit continuer.
Exemple :
do {
instruction_1;
instruction_2;
} while (condition);
La boucle for possède trois blocs qui la définissent. Le troisième est le bloc d'incrémentation qu'on va utiliser pour
incrémenter une variable à chaque itération de la boucle.
Exemple :
Priorité d'exécution
Les trois blocs qui constituent la boucle for ne sont pas exécutés en même temps :
Initialisation : juste avant que la boucle ne démarre. C'est comme si les instructions d'initialisation avaient
été écrites juste avant la boucle, un peu comme pour une boucle while ;
Condition : avant chaque passage de boucle, exactement comme la condition d'une boucle while;
Incrémentation : après chaque passage de boucle. Cela veut dire que, si vous faites un break dans une
boucle for, le passage dans la boucle lors du break ne sera pas comptabilisé.
La fonction getComputedStyle()
Il n'est pas possible de récupérer les valeurs des propriétés CSS d'un élément par le biais de la propriété style vu que
celle-ci n'intègre pas les propriétés CSS des feuilles de style, ce qui nous limite énormément dans nos possibilités
d'analyse.
La fonction getComputedStyle() va se charger de récupérer, à notre place, la valeur de n'importe quel style CSS !
Qu'il soit déclaré dans la propriété style, une feuille de style ou bien même encore calculé automatiquement, cela
importe peu.
Exemple :
1<style type="text/css">
2 #text {
3 color: red;
4 }
5</style>
6
7<span id="text"></span>
8
9<script>
10 var text = document.getElementById('text'),// document.getElementById retourne une référence à notre
élément HTML text
11 color = getComputedStyle(text, null).color;
12
13 alert(color);
14</script>
Exercice :
Réduire ou augmenter la dimension d’une image avec deux boutons.
Ajout de l’image :
<div align="center" id="cadre"><img src="../atelier.png" id ="image" width="200" height="200" alt=""/></div>
Correction:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>cours javascript2</title>
<style type="text/css">
#bouton1 {
position: fixed;
top: 10px;
z-index:10;
}
#bouton2 {
position: fixed;
top: 30px;
z-index:10;
}
#cadre {
position: fixed;
top: 200px;
z-index:10;
}
</style>
</head>
<body>
<script type="text/javascript">
var chiffre;
function agrandir() {
var image = document.getElementById('image'),
dimensionx = getComputedStyle(image, null).width;
dimensiony = getComputedStyle(image, null).height;
var dimensionx2=parseInt(dimensionx);
dimensionx2=dimensionx2+40;
var dimensiony2=parseInt(dimensiony);
dimensiony2=dimensiony2+40;
image.style.width=dimensionx2+"px";
image.style.height=dimensiony2+"px";
}
function reduire() {
var image = document.getElementById('image'),
dimensionx = getComputedStyle(image, null).width;
dimensiony = getComputedStyle(image, null).height;
var dimensionx2=parseInt(dimensionx);
dimensionx2=dimensionx2-40;
var dimensiony2=parseInt(dimensiony);
dimensiony2=dimensiony2-40;
image.style.width=dimensionx2+"px";
image.style.height=dimensiony2+"px";
}
</script>
<div align="center" id="bouton1"><button onclick="agrandir()">agrandir</button></div>
<div align="center" id="bouton2"><button onclick="reduire()">reduire</button></div>
<div align="center" id="cadre"><img src="../atelier.png" id ="image" width="200" height="200" alt=""/></div>
</body>
</html>
Pour certain programme nous avons besoin de récupérer la valeur d’une touche de clavier (ex : jeux). On peut
utiliser pour cela une foncion :
function toucheclavier(ev)
<body onkeyup="toucheclavier(event)">
<div id="out"></div>
</script>
</body>
ev étant une variable qui décrit l'événement qui s'est produit, en particulier dans le cas d'une touche pressée au
clavier, elle contient l'information nous permettant de connaître cette touche. Le nom de la fonction n’est pas
important.
Dans le cas d'un caractère imprimable, il suffit d'utiliser ev.charCode et la convention suivante :
32 : espace,
36 : $,
60 : <,
65 : A,
97 : a,
etc.
Exercice :
Correction :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>exrecice touche</title>
</head>
<body>
<script type="text/javascript">
function toucheclavier(ev)
{
var alt = ev.altKey;
var shift = ev.shiftKey;
var ctrl = ev.ctrlKey;
var touche = ev.keyCode;
var codeHTML="";
if (shift)
codeHTML += "shift + ";
if (ctrl)
codeHTML +="ctrl + ";
if (alt)
codeHTML += "alt + ";
codeHTML += touche+"<br>";
document.getElementById("out").innerHTML = codeHTML;
}
//-->
</script>
</head>
<body onkeyup="toucheclavier(event)">
Créer une première div dont l’id est cadre de dimension 200x200 avec un encadrement noir
Puis à l’intérieur créer une deuxième div de même dimension dont l’id est boite avec un intérieur rouge
Puis un bouton en dessous dont l’id est aller. Avec comme titre « tourner ». Puis un évènement « onclick »,
qui lance la fonction « aller () » ;
Exemple : rotateY(30deg)
o Rajouter dans les paramètres du cadre la propriété « perspective » permettant de définir le point de
fuite de la perspective
preserve-3d
Indique que les fils de l'élément ciblé doivent être positionnés dans l'espace tridimensionnel.
flat
Indique que les fils de l'éléments sont positionnés dans le plan de l'élément.
Remarque :
Le méthode setTimeout définit une action à exécuter et un délai avant son exécution. Elle retourne un identifieur
pour le processus.
Cette méthode interrompt le délai et l'exécution du code associé à ce délai. Le processus à supprimer est reconnu
par l'identifieur retourné par setTimeout.
Tester l’application
http://www.sti2dsinhyrome.fr/animation%203d/avec%20boutons/un%20bouton/index.html
Code html :
Code CSS :
Code JavaScript :