Faire varier la taille de la fenetre navigateur dans le temps (incrementation?)
cs_crasse
Messages postés51Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention22 juin 2009
-
14 juin 2009 à 18:08
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
22 juin 2009 à 10:10
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 ?
A voir également:
Faire varier la taille de la fenetre navigateur dans le temps (incrementation?)
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 15 juin 2009 à 08:16
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
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 15 juin 2009 à 08:21
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.
cs_crasse
Messages postés51Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention22 juin 2009 22 juin 2009 à 01:14
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...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 22 juin 2009 à 10:10
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.