11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai mis en ligne ici : http://romanc.free.fr/essai/essai2.htm une page avec un petit script qui me permet de faire une espèce de note de bas de page version web.
Ca marche bien mais mon problème est le suivant : avec 3 liens, ce n'est pas un problème, avec une centaine, comme je le prévois, mon code va être monstrueux.
En l'état, vous pouvez le voir sur le code source, il faut pour chaque lien :

height1 = new fx.Height('note_01', {duration: 200});
height1.hide();

...sans parler de ma feuille de style qui s'incrémente ainsi : #note_01, #note_02, #note_03, etc.

Je ne connais absolument pas la programmation des scripts, si quelqu'un sait si une simplification est possible, je suis preneur.

Merci d'avance

M.
Pour les CSS tu peux mettre une classe ...

Pour le Javascript j'avoue ne pas comprendre comment il fonctionne et je n'ai pas envie de chercher. De plus je ne suis pas sûr que tu le comprennes non plus.
Modifié par CNeo (06 Jan 2007 - 11:58)
Merci CNeo,

En effet, je l'ai indiqué, je ne connais pas le javascript. Mais je suppose que certains le connaissent.
J'ai bien essayé une class, mais dans la mesure où le script pointe individuellement vers chaque div (note_01, note_02,etc.), ça ne marche plus avec une class (.note par exemple).

Merci quand même.

M.
Je parlais de çà :
#note_01, #note_02, #note_03 {
	font-size: 0.8em;
	background: #cccccc;
	color: #333333;
	padding-right: 0.5em;
	padding-left: 0.5em;
	cursor: pointer;
}

Là tu peux utiliser une classe au lieu de mettre tous les id à chaque fois ...

Pour ton Javascript je pense qu'il est complètement pourri ...
Modifié par CNeo (06 Jan 2007 - 13:06)
Le Javascript n'étant pas mon point fort je pense que j'aurais fait une fonction simple du style :
function showOrHide(id){
 if(document.getElementById(id).style.display=='block') document.getElementById(id).style.display='none';
 else if(document.getElementById(id).style.display=='none') document.getElementById(id).style.display='block';
}
Par contre il n'y a pas d'effet de déroulement simplement parce que je sais pas comment on fait ...
Modifié par CNeo (07 Jan 2007 - 17:33)
Oui, j'avais saisi qu'il s'agissait des id. Mais dans mon script actuel, une class ne marche pas. Cela dit, il doit y avoir moyen d'optimiser, c'est certain, via un javascript mieux fait. C'est mon problème, je ne sais pas les faire.

Je regarde ce que tu as fait mais à priori, je veux conserver cet effet de déroulement. (qui doit se trouver dans le fichier mootools.js qui est appelé en début de page : <script src="mootools.js" type="text/javascript"></script>)

Merci de te pencher sur mon cas,

M.
Bonsoir,
tu peux essayer avec un tableau height = new Array(); indexé par le numéro de la note de bas de page.
exemple height = new fx.Height('note_0'+i, {duration: 200});
et
height[i].hide();

puis

height.toggle(1) ou height.toggle(100)

mais je n'ai pas testé par manque de temps
[/i]
Coucou coucou,

Je vais regarder ça et voir ce que je peux faire avec... avec un peu d'imagination, on sait jamais. En tout cas, merci beaucoup !

M.