J'ai un code qui permet d'effectuer 3 niveaux de zoom sur un plan en appellant simplement 3 images différentes.
Ce code fonctionnait très bien sur ma page sans DOCTYPE. Depuis que je suis passé en DOCTYPE strict XHTML 1.0, celui-ci ne fonctionne plus.
Il doit y avoir une erreur que je ne vois pas.
Voici le code :
<script type="text/javascript">
<!--
type = new Array()
type[0]="large";
type[1]="moyen";
type[2]="court";
niv = new Array();
for(idx=0; idx < 3; idx++)
{
niv[idx] = new Image()
niv[idx].src = "plan-" + type[idx] + ".gif";
}
function zoomPlan(type)
{
if (type == "plus")
{
switch(plan.src)
{
case niv[0].src :
plan.src = niv[1].src;
break;
case niv[1].src :
plan.src = niv[2].src;
break;
case niv[2].src :
plan.src = niv[2].src;
break;
default :
plan.src = niv[0].src;
break;
}
}
else if (type == "moins")
{
switch(plan.src)
{
case niv[0].src :
plan.src = niv[0].src;
break;
case niv[1].src :
plan.src = niv[0].src;
break;
case niv[2].src :
plan.src = niv[1].src;
break;
default :
plan.src = niv[2].src;
break;
}
}
else if (type == "image")
{
switch(plan.src)
{
case niv[0].src :
plan.src = niv[1].src;
break;
case niv[1].src :
plan.src = niv[2].src;
break;
case niv[2].src :
plan.src = niv[0].src;
break;
default :
plan.src = niv[0].src;
break;
}
}
}
//-->
</script>
Et le code html :
<a onclick="javascript:zoomPlan('image');" ><img alt="Cliquer sur l'image pour zoomer" src="plan-large.gif" border="0" name="plan" /></a>
<a Onclick="javascript:zoomPlan('plus');" >augmenter le zoom</a>
<a Onclick="javascript:zoomPlan('moins');" >diminuer le zoom</a>
Si tu veux parcourir des éléments grace à leurs noms utilise une méthode moins sale (mois très sale jdirais même si ça se dit pas^^) du style document.getElementsByName('nomDeLelement');
Petit exemple sur ton code :
case niv[0].src :
document.getElementsByName('plan')[0].src = niv[1].src;
break;
Sinon ben encore mieux puisque tu n'as qu'une seul image utilise document.getElementById('idDeLimage');
Ce qui donne :
case niv[0].src :
document.getElementById('idDeLimage').src = niv[1].src;
break;
Tout en sachant que si tu utilise le deuxième il faut que tu mette un id et surtout tu remarqueras que pour la recherche par nom il y a un s à element et par id il n'y en a pas (l'id étant unique)
Voila
Erreur sur code pour faire un zoom
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.