1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| /* Fonction qui Reduit/Agrandit un div sur clic.
A placer dans un head : <script language=JavaScript src='redimensionnementProgressif.js'></script>
A placer dans l'objet declencheur : onClick='reduireAgrandir()'
A placer dans le Div : id=redimensionnable style='overflow:hidden;'
*/
/*Parametres*/
tailleReduite = 30;//taille reduite *** Ameliorable en recuperant la hauteur de la zone reduite ***
delaiExecution = 1;//délai d'attente avant ré-execution de la fonction
pasTaille = 1;//Pas d'incrementation transitionnel en pixel
/*variables*/
etatBoucle = true;//Etat de la boucle : vrai : stopé ; faux : en cours d'utilisation
function reduireAgrandir()
{//etat boucle et reduireAgrandirProgressif() permettent de prendre en compte le clic de l'utilsateur pendant le redimensionnement
if (etatBoucle)
{//si la boucle n'est pas utilisé... on l'utilise !
tailleInitiale = document.getElementById('redimensionnable').scrollHeight;//on initialise... la taille initiale du div
tailleActuelle = document.getElementById('redimensionnable').offsetHeight;//on recupere la taille actuelle du div
//on defini la taille à atteindre
if (tailleActuelle > tailleReduite)
{//s'il n'est pas reduit ... on le reduit ^^
tailleConvoite=tailleReduite;
}
else if (tailleActuelle < tailleInitiale)
{//sinon on l'agrandit
tailleConvoite=tailleInitiale;
}
reduireAgrandirProgressif();//dans tous les cas ce sera progressif
}
else
{//sinon on change le but a atteindre
if (tailleConvoite==tailleInitiale)
{//s'il s'agrandit ... on le reduit ^^
tailleConvoite=tailleReduite;
}
else if (tailleConvoite==tailleReduite)
{//sinon on l'agrandit
tailleConvoite=tailleInitiale;
}
}
}
function reduireAgrandirProgressif()
{
if (tailleActuelle != tailleConvoite)
{//tant que la taille convoité n'est pas atteinte (setTimeOut(...))
if (tailleActuelle > tailleConvoite)
{//si la taille actuelle est superieur a la taille voulu on decremente
tailleActuelle-=pasTaille;
}
else if (tailleActuelle < tailleConvoite)
{//sinon on incremente
tailleActuelle+=pasTaille;
}
etatBoucle=false;//on utilise la boucle... donc on la boucle ^^
document.getElementById('redimensionnable').style.height=tailleActuelle;//on change la taille de +/- x pixel
setTimeout('reduireAgrandirProgressif()', delaiExecution);//re-execution de la fonction apres un delai d'attente
}
else
{//le div est redimmensioné donc on n'a plus besoin d'executer la boucle
etatBoucle=true;
}
}/* *** By Robin des Bulles *** */ |