Javascript: Mémorisation de l'état initial
flashdumpf
-
flashdumpf Messages postés 18 Statut Membre -
flashdumpf Messages postés 18 Statut Membre -
Bonjour,
j'ai une page HTML contenant plusieurs DIV portant la même classe. Toutes ont une largeur différente. J'ai une fonction javascript qui liste toutes les DIV portant cette classe dans un tableau.
J'aimerai mémoriser la largeur initiale de chaque DIV quelque part sachant que chaque largeur va être modifiée par la suite. J'aimerai ensuite que chaque fois que je fais un mouseover sur une DIV, que le programme m'affiche la largeur initiale.
J'ai pensé stocker chaque largeur dans un autre tableau, mais je ne vois pas comment je peux retrouvé la valeur. En gros il faut que je trouve le moyen de lier l'élément avec sa largeur initiale.
Une Idée?
Merci
j'ai une page HTML contenant plusieurs DIV portant la même classe. Toutes ont une largeur différente. J'ai une fonction javascript qui liste toutes les DIV portant cette classe dans un tableau.
J'aimerai mémoriser la largeur initiale de chaque DIV quelque part sachant que chaque largeur va être modifiée par la suite. J'aimerai ensuite que chaque fois que je fais un mouseover sur une DIV, que le programme m'affiche la largeur initiale.
J'ai pensé stocker chaque largeur dans un autre tableau, mais je ne vois pas comment je peux retrouvé la valeur. En gros il faut que je trouve le moyen de lier l'élément avec sa largeur initiale.
Une Idée?
Merci
A voir également:
- Javascript: Mémorisation de l'état initial
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
3 réponses
bonjour
pourquoi ne pas ajouter à chacun de tes div un nouvel attribut ?
exemple
Adns
Hacker Vaillant Rien D'Impossible !!!
Le Monde du partage Remplacera le partage du monde
Mac ou PC ?? o_O Question Stupide puisque MAC est un PC....
B2D Team © | Work In Progress
pourquoi ne pas ajouter à chacun de tes div un nouvel attribut ?
exemple
<div id="test" width="80px" largeurOrigine="80">
</div>
<script>
var l = document.getElementById('test').largeurOrigine;
alert(l);
</script>
Adns
Hacker Vaillant Rien D'Impossible !!!
Le Monde du partage Remplacera le partage du monde
Mac ou PC ?? o_O Question Stupide puisque MAC est un PC....
B2D Team © | Work In Progress
flashdumpf
Messages postés
18
Statut
Membre
1
Ca n'est pas pratique car la largeur de la DIV dépend du texte qu'il y a dedans
Je ne pense pas qu'inventé ses propres attributs soit la solution, mais ce n'est que mon avis.
Perso, je te conseil l'utilisation d'un second tableau.
Ainsi, la largeur originale du div dans tableau[3] sera dans largeur_init[3] (par exemple).
Perso, je te conseil l'utilisation d'un second tableau.
Ainsi, la largeur originale du div dans tableau[3] sera dans largeur_init[3] (par exemple).
var largeur_init = Array();
for(i = 0 ; i < tableau.length ; i++) {
largeur_init[i] = (typeof(tableau[i].innerWidth) == 'number') ? tableau[i].innerWidth : tablea[i].clientWidth;
}
alert('Largeur du 2ème div : ' + largeur_init[1]);
var largeur_init = Array();
for(i = 0 ; i < tableau.length ; i++) {
largeur_init[i] = (typeof(tableau[i].innerWidth) == 'number') ? tableau[i].innerWidth : tablea[i].clientWidth;
tableau[i].onmouseover = function() {
// Fonction qui affiche la largeur ( largeur_init[i] )
};
}
Voici un bout de code simplifié. J'ai fais le test pour 2 DIV en remplaçant le alert(sizes[i]) par alert(i) et je t'assure qu'il m'affiche i=2 et pas le i correspondant à la DIV..
window.onload = function(){
boxes=getElementsByClass('classname', null ,'div');
sizes=new Array();
for (i=0; i<boxes.length; i++) {
sizes[i]=boxes[i].clientWidth;
boxes[i].onmouseover = function() { alert(sizes[i]); };
}
}