Forum de discussion
Forum « Programmation Javascript » (archives)
probleme avec setInterval
Envoyé: 5 avril 2005, 5h58 par seben
Je débute en js et cela fait plusieurs jours que je ne m'en sort plus avec mon script.
Celui ci est sensé faire apparaitre une image (_objet) à un point définit (_x,_y) et la faire grossir jusqu'à un autre point (_xm,_ym) avec les dimensions (_Lm,_lm).
Le problème est que setInterval ne semble pas appeller la fonction "position()" alors que lorsque cette ligne est remplacée par "position()" celle-ci est appellée (vérifié avec les lignes "document.write").
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Modifier le contenu</title>
<style>
.Objet {
position: absolute;
width: 10px;
height: 10px;
top: 1px;
left:1px;
border-style:outset;
background-color:blue;
}
</style>
<script language="javascript">
function zoom(_objet,_x,_y,_xm,_ym,_Lm,_lm) {
var x = parseFloat(_x);
var y = parseFloat(_y);
var xm = parseFloat(_xm);
var ym = parseFloat(_ym);
var L = parseFloat(0);
var l = parseFloat(0);
var Lm = parseFloat(_Lm);
var lm = parseFloat(_lm);
var objet = _objet;
var vx = parseFloat(1);
var vy = parseFloat(1);
var vL = parseFloat(1);
var vl = parseFloat(1);
var timer = null;
function cal_v() { // calcule les vitesses de déplacement et de zoom de l'image
vx = (xm - x) / 100;
vy = (ym - y) / 100;
vL = Lm / 100;
vl = lm / 100;
}
function position() { // calcule la position et modifie le style de l'image
//document.write(' objet:'+objet+' x:'+x+' vx:'+vx+' xm:'+xm+' ym:'+ym+' L:'+L+' Lm:'+Lm+'<br>');
//document.write(' type:'+typeof(timer)+' '+timer+'');
x = x + vx;
y = y + vy;
L = L + vL;
l = l + vl;
document.getElementById(objet).style.left=x+"px";
document.getElementById(objet).style.top=y+"px";
document.getElementById(objet).style.height=l+"px";
document.getElementById(objet).style.width=L+"px";
if (L >= Lm) clearInterval(timer);
}
cal_v();
timer = setInterval("position();",50);
// position();
}
</script>
</head>
<body>
<div id="carte" class="Objet"><img src="carte_pyr.gif" width="100%" height="100%"></div>
<script language="javascript">
zoom("carte","100","200","10","20","200","200");
</script>
</body>
</html>
Réponses
|