Faire varier la taille de la fenetre navigateur dans le temps (incrementation?)

Signaler
Messages postés
51
Date d'inscription
lundi 9 avril 2007
Statut
Membre
Dernière intervention
22 juin 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
salut toutes et tous !

j'essai de faire varier la taille de la fenetre du navigateur dans le temps, c'est a dire que par exemple, disons que la fenetre du navigateur fait 1200/1200, en cliquant sur un bouton, elle passe a 800/600 de maniere fluide (pas d'un coup, ça j'ai trouvé comment faire ^^

en cherchant un peu, j'ai cru comprendre que ce genre de manipulatiion numerique (creer des rampe de valeurs) s'appellaient incrémentation ou décrementation, mais voila je n'y parvient pas du tout.

voici mon ersatz de script (modifié a partir d'un script trouvé sur le net) :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>

<script language="JavaScript">

var height = 600;
var width = 800;

function size() {

    //check if we should increment or decrement
    if (height <= 600) {
        //two plus signs will increment our variable by one
        height++;
    } else if (height > 600) {
        //two minus signs will decrement our variable by one
        height–;
    }

    //check if we should increment or decrement
    if (width <= 800) {
        //two plus signs will increment our variable by one
        width++;
    } else if (width > 800) {
        //two minus signs will decrement our variable by one
        width–;
    }

window.resizeTo(height,width);
}

</script>

</head>

[javascript:retailler(640,480); Redimmensionner] à 640 par 480

[javascript:retailler(800,600); Redimmensionner] à 800 par 600

</html>

pour l'instant ça ne marche pas du tout, j'ai mis 2 typo clickable pour faire varier la taille instantanément (elle marchait lorsque je n'avai pas encore ajouté de tentative d'incrémentation) et un bouton qui serait censé faire croitre ou decroitre la taille de la fenetre jusqu'a une valeur donnée (800/600) malheureusement cela ne fonctionne pas.

je dois etre assez loin du compte je pense, sauriez vous ou je pourrait trouver de la documentation, un exemple de ce genre de fonction, ou encore un tuto qui irait dans ce genre de voie s'il vous plait , car je n'ai pas réussi a mettre la main sur quelques choses de vraiment similaire que je puisse prendre comme exemple, ou bien entendu si vous avez une idée de ce qu'il pourrait manquer pour que ça fonctionne ?

5 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
12
Bonjour,

1° évite les nom width, height, size... ça peut poser des problèmes

2°  height++; donc... height--;  ( et pas height- )
   width++; donc width--;

3° tu fais
        si height <= 600 height+1
        sinon, si height > 600 height-1
    déjà, si height n'est pas <=600 c'est qu'il est  > donc le 2ème if est inutile
    de plus tu incrémente ou décrémente height 1 fois et rien de plus.
    ( pareil pour width )
    il faut décrémenter ou incrémenter tant que la taille n'est pas atteinte
    donc probablement rappeler la fonction avec setTimeout
     
Cordialement [mon Site] [M'écrire] Bul
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
12
et tu as :
....
or aucune fonction retailler ? si ?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
12
dernier point :
tu sais que l'interdiction ou l'autorisation de redimensionner
les fenêtres se paramètres dans les navigateurs ?
comme tout le monde ;o) travaille avec des onglets,
tout le monde ;o) refuse qu'on change la taille des fenêtre.
Messages postés
51
Date d'inscription
lundi 9 avril 2007
Statut
Membre
Dernière intervention
22 juin 2009

iio !

désolé pour le retard de ma reponse ! et bien tout ce que m'a dit m'a beaucoup aidé :D ! j'ai integré une fonction setimeout (et cleartimeout) pour gerer ça dans le temps, j'ai viré les "if" inutile et j'ai donné des noms non-generique a mes variables et ça marche du tonnerre !!!.... dans IE

firefox fait un peu n'importe quoi avec, ça marche mais plus ou moins (j'ai l'impression qu'il cumule plusieurs fois la meme fonction si je clique plusieurs sur le meme boutons et le bouton stop n'a pas l'air de faire effet)
bref y'a quelquechose la dedans qui ne plait pas a FF et je ne sais pas vraiment quoi, mais je suis en pleine quete xD

voici donc le script en presque bon etat :

<SCRIPT LANGUAGE=JavaScript>

var mo = 1000;
var po = 1000;

     
     function oua()
     {
     clearTimeout("oua2()")
     window.resizeTo( mo,po );
     if (mo<600){mo+10;}else{mo--;}
     if (po<600){po+10;}else{po--;}
     
     setTimeout("oua()",1);
     
     
     }
     
     function oua2()
     {
     clearTimeout("oua()")
     window.resizeTo( mo,po );
     if (mo<100){mo--;}else{mo++;}
     if (po<800){po--;}else{po++;}
     setTimeout("oua2()",1);
     }
     
     function oua_stop()
     {
     clearTimeout("oua()")
     clearTimeout("oua2()")
     
     }
</script>

</head>

</html>



si jamais un bout de code qui serait pas compatible avec FF vous saute aux yeux, puissiez vous me faire signe s'il vous plait

en tout cas, encore une fois merci ! (qui plus est je commence a integrer un peu plus la semantique de base du js, et c'est assez amusant a utilisé, m'enfin j'ai quand meme du rebooter 2 fois apres avoir fait planté FF puis XP en tripatouyant trop violement mes fonction de resizage...)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
12
des erreurs, tu devrais regarder la console d'erreurs FF !

1° <script type="text/JavaScript">

2° clearTimeout ( ici ce n'est pas une fonction, mais une variable !  )
   pour oua, par exemple :
           var poua=-1;  en global
           poua=setTimeout(oua,1);
           clearTimeout(poua);
    setTimeout(fonction,delai) vaut mieux que setTimeout("fonction();",delai

3° toutes tes instructions devraient se terminer par ;

4° pourquoi continuer le boulot lorsque la taille est atteinte ?
    tu bouffes du cpu pour rien
    fonction()
    { taille atteint ?
      non : { modifier la taille
               setTimeout( fonction )
             }
    }

5° comme déjà dit, ça ne fonctionnera que si on l'autorise.