Thierry Lecroq

Transcription

Thierry Lecroq
DHTML
Thierry Lecroq
Université de Rouen
FRANCE
Thierry Lecroq (Univ. Rouen)
DHTML
1 / 10
Dynamic HTML
En HTML seul, une page chargée ne peut plus être modifiée
Solution
Combinaison de
javascript
modification d’attributs d’éléments HTML
gestion des événements
accès au DOM HTML (arbre des éléments HTML de la page)
Thierry Lecroq (Univ. Rouen)
DHTML
2 / 10
Les calques du DHTML
Le DHTML exploite la notion de calque ou couche ou layer : principal et
indispensable objet d’affichage d’un contenu.
Ils peuvent être manipulés : déplacés, cachés, modifiés, redessinés,
changés...
Thierry Lecroq (Univ. Rouen)
DHTML
3 / 10
Les balises de calque
layer
ilayer (Netscape)
iframe (IE)
div
Exemple
<div id="monCalque"
style="background:#00AA11;width:100px;height:100px">
contenu
</div>
Thierry Lecroq (Univ. Rouen)
DHTML
4 / 10
Modifier les calques avec Javascript
Exemple
<html>
<head>
<script type="text/javascript">
function init() {
setTimeout("change()",3000);
}
function change() {
document.getElementById("monCalque").style.backgroundColor="red";
document.getElementById("monCalque").style.left="150px";
}
</script>
</head>
<body onLoad="init()">
<p>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
<div id="monCalque"
style="position:absolute;background:#00AA11;
left:100px;top:50px;
width:100px;height:100px">calque
</div>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla
</p>
</body>
</html>
Thierry Lecroq (Univ. Rouen)
DHTML
5 / 10
Modifier les calques avec Javascript
Quand le document est totalement chargé, l’événement onLoad est
déclenché.
Il lance la fonction init, qui lance un timeOut de 3 secondes, qui
déclenchera la fonction change
Thierry Lecroq (Univ. Rouen)
DHTML
6 / 10
Le calque qui se déplace
<html>
<head>
<script type="text/javascript">
function init() {
setTimeout("change()",1000);
}
function change() {
var gauche;
gauche=parseInt(document.getElementById("monCalque").style.left);
document.getElementById("monCalque").style.left=(gauche+10)+"px";
setTimeout("change()",1000);
}
</script>
</head>
<body onLoad="init()">
<p>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
<div id="monCalque"
style="position:absolute;background:#00AA11;
left:100px;top:50px;
width:100px;height:100px">calque
</div>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla
</p>
</body>
</html>
Thierry Lecroq (Univ. Rouen)
DHTML
7 / 10
Le calque qui disparait
<html>
<head>
<script type="text/javascript">
function init() {
setTimeout("change()",2000);
}
function change() {
document.getElementById("monCalque").style.visibility="hidden";
}
</script>
</head>
<body onLoad="init()">
<p>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
<div id="monCalque"
style="position:absolute;background:#00AA11;
left:100px;top:50px;width:100px;height:100px;
visibility:visible">calque
</div>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla<br/>
blabla blabla blabla blabla blabla blabla
</p>
</body>
</html>
Thierry Lecroq (Univ. Rouen)
DHTML
8 / 10
<html>
<head>
<title>DHTML : technique de mouvement de l’élément div</title>
<script type="text/javascript">
var x=10, y=10, dx=2, dy=4, dim=100;
var delai=20;
function startBallon() {
window.setInterval("bougeBallon()", delai);
}
function bougeBallon() {
if ((x+dx >(window.innerWidth-dim)) || (x+dx<0))
dx= -dx;
if( (y+dy >(window.innerHeight-dim)) || (y+dy<0))
dy= -dy;
x += dx; y += dy;
document.getElementById("monBallon").style.left=x;
document.getElementById("monBallon").style.top=y;
}
</script>
</head>
<body onload="startBallon();">
<h2>DHTML : technique de mouvement de l’élément div</h2>
<p>
<script language="JavaScript">
for(var i=0; i<20; ++i)
document.writeln("blabla blabla balabla<br/>");
</script>
</p>
<div id="monBallon" style="position: absolute;
left: 10px; top: 10px; visibility: visible">
<img src="ballon.jpg" width="100" height="100" border="0">
</div>
</body>
</html>
Thierry Lecroq (Univ. Rouen)
DHTML
9 / 10
Sources
Didier Ferment
Supports de cours
http://www.u-picardie.fr/~ferment/indexcours.html
Thierry Lecroq (Univ. Rouen)
DHTML
10 / 10