Javascript

Transcription

Javascript
Javascript
D3
Guy Lapalme
Javascript
• Langage de programmation objet
• Présent dans tous les browsers
• Pas toujours activé, mais presque…
de manipuler
• Permet
le contenu d’une page web une fois chargée
-
tous les éléments du browser
valider les éléments d’un formulaire
2
Javascript : brefs rappels -1
plus de détails
de base
• Types
nombres, chaines de caractères, booléens, null,
-
undefined
objets
•
•
tableau
fonction
• Variables (déclarées avec var)
• Opérateurs (+,-,*,/,<,<=,==,>,>=)
• -Énoncés
if (cond) {…} else {…}
-
for (var i=0;i<n;i++){…}
3
Javascript : brefs rappels - 2
plus de détails
• -Tableau
var t = ["veau","vache","cochon"]
-
t.length, t[2], t.push("couvée"), t.pop()
t.join(" et "), t.sort()
• Fonction
var fact = function(n) {
if (n == 1) return 1;
return n*fact(n-1);
};
4
Javascript : brefs rappels - 3
plus de détails
Objets
simples
var personne={prenom:"Alain",nom:"Ternet",
setNom:function(newNom){
this.nom=newNom;
return this;
}
};
personne.prenom+" "+personne["nom"] => ??
personne.setNom("Formatique");
personne.setPrenom=function(newPrenom){
this.prenom=newPrenom;
return this;
};
personne.prenom+" "+personne["nom"] => ??
personne.setNom("Dinateur").setPrenom("Laure")
personne.prenom+" "+personne["nom"] => ??
Autres exemples de création d'objets
5
Accès aux éléments du browser
et propriétés prédéfinies
• Objets
Document Object Model
• node, children, …
- Browser Object Model
•
window, frames, history, location, …
• Gestion des événements par appel de
fonction (callback, event listener)
-
click, load, mouseover, submit …
6
Lien avec une page web
script
• Balise
soit dans le corps de la page (à éviter)
-
soit dans l’entête
-
source HTML
source Javascript
-
source HTML
source Javascript
: afficher la date du browser
• Exemple
Exécuter
lien avec un formulaire
• Exemple:
Dessin d’un polygone avec SVG
7
Frameworks Javascript
•
•
•
Ensemble de fonctions JS pour la
programmation client
-
manipulation DOM
extensions diverses aux tableaux, chaînes
gestion uniforme des événements
widgets pour interface usager
-
jQuery
D3
Permet de s'affranchir des particularités des
browsers (y compris diverses versions)
Utilise à fond les aspects fonctionnels de JS
8
D3
Data Driven Document
• Représentation graphique des données
• gestion automatique des axes et des échelles
• traitement des couleurs, dates, projections, etc
• plusieurs graphiques prédéfinis: arbres, cartes, …
• Basé sur les standards: HTML, CSS, SVG
• Animations avec les transitions SVG
• Mise à jour dynamique des entrées/sorties des
nouvelles données
• Indépendance des browsers modernes
9
Sélection
d3.select(sélecteur CSS)
d3.selectAll(sélecteur CSS)
*
tous les éléments
.class
tous les éléments de cette classe
élément
tous les éléments de ce nom
#id
l’élément avec cet id
sel1, sel2, … combine tous les résultats des sélecteurs
parent enfant tous les enfants d’un parent
10
Sélection D3 vs élément DOM
var totoS = d3.select("#toto")
var toto = document.getElementById("toto")
var toto = totoS.node()
var bleusS = d3.selectAll(".bleu")
var bleus = document.getElementsByClassName("bleu")
11
Sélection D3
attributs
attr(nom[,valeur])
classes
classed(nom[,true|false])
style
style(nom[,valeur])
propriété
property(nom[,valeur])
texte
text([valeur])
html
html([valeur])
ajout à la fin
append(nomElement)
insertion après
insert(nom[,before])
enlèvement
remove()
KMsAPied.xhtml
Autres exemples avec D3
12