Code pour zoomer ne fonctionne pas

Résolu
cs_nico03 Messages postés 6 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 9 octobre 2008 - 8 oct. 2008 à 22:03
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 9 oct. 2008 à 16:40
Bonjour,

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();

    // Preload images plan

    for(idx=0; idx < 3; idx++)
    {
        niv[idx] = new Image()
        niv[idx].src = "<?php echo TAG("image")?>plan-" + type[idx] + ".gif";
    }

    function zoomPlan(type)
    {
        if (type == "plus")
        {
            //alert (plan.src);                   
            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;   
            }   
            //alert (plan.src);
        }

        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 :

plan-large.gif" border="0" name="plan" />

augmenter le zoom

diminuer le zoom

Quelqu'un saurait-il me dire où çà coince ?

Merci d'avance

Nico

3 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 oct. 2008 à 10:38
bonjour,

avant de regarder plus loin si nécessaire....

[javascript:void(zoomPlan('image'));
    Lien]

[javascript:void(zoomPlan('plus')); augmenter le zoom]

[javascript:void(zoomPlan('moins')); diminuer le zoom]

<script type= "text/javascript">
    var plan=document.getElementById("plan");
   
    var type = new Array()

    type[0]="large";
    type[1]="moyen";
    type[2]="court";
  
    var niv = new Array();

...

Cordialement

Bul[mon Site][M'écrire]
3
cs_nico03 Messages postés 6 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 9 octobre 2008
9 oct. 2008 à 16:20
Merci bultez, tout fonctionne parfaitement maintenant.
Bravo.

Nico
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 oct. 2008 à 16:40
il te reste à "simplifier" ton script
( déjà supprimer le "preload"... inutile
  ensuite test type et switch peuvent être évités
  ... )
et pourquoi ne pas simplement jouer sur les tailles de l'image ?
> 1 seule image et on joue sur style.height + width="un %" par exemple
bon, c'est vrai que la qualité peut se dégrader...
mais faut voir, ça peut convenir et généralement suffire

          Bul  [mon Site] [M'écrire]         
0
Rejoignez-nous