qui.dominatur Posté(e) le 8 septembre 2008 Partager Posté(e) le 8 septembre 2008 Bonjour, J'utilise un menu de type fisheye ( http://simply-basic.com/posts/19419 ). Les bouton sont codé de cette façon. <a href="#" onClick="java script: depart = 'paris';"><img src="images/icon.gif" alt="image description" /><span>Icon 1</span></a> Ce que je voudrai c'est que une fois "depart" défini ,donc après un click, l'image icon.gif garde sa grande taille. Donc que la fonction restoreSize du fisheye.js appelé soit "désactivée". restoreSize : function restoreSize() { var x = this.parentNode.getElementsByTagName("span"); x[0].style.display = 'none'; if (!this.currentWidth) return; fisheyemenu.resizeAnimation(this,this.currentWidth,fisheyemenu.startSize,15,10,0.5); fisheyemenu.imgSmall(this); J'ai essayé de mettre le fisheye.js directement ma page index.html mais dès que je met une condition type if(depart == null) { startSize = 55, } if else(depart != null) { startSize = 88, } ou que je met cet condition tout simplement sur la fonction restoreSize, le script ne fonctionne plus. Comment puis-je faire ? Merci de votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yangzebul Posté(e) le 8 septembre 2008 Partager Posté(e) le 8 septembre 2008 <script type="text/javascript"> function customizeMenu (){ var animElements = document.getElementById("fisheye_menu").getElementsByTagName("img"); for(var i = animElements.length; i--;) animElements[i].onclick = function(){ depart = this.id; this.onmouseout = null; }; } if (window.addEventListener) window.addEventListener("load", customizeMenu, false); else if (window.attachEvent) window.attachEvent("onload", customizeMenu); </script> <a href="#" id="paris"><img src="images/icon.gif" alt="image description" /><span>Icon 1</span></a> Normalement cela devrait être mieux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
qui.dominatur Posté(e) le 8 septembre 2008 Auteur Partager Posté(e) le 8 septembre 2008 Merci de ta réponse, en effet ça marche. Par contre, comme je me suis mal expliqué ça ne correspond pas tout à fait. J'aimerai aussi que lorsque l'on clique sur un autre élément du menu, il reste gros et que l'ancien sélectionné redevienne petit. En fait que l'on puisse choisir avant de valider. Je pense qu'il doit falloir ajouter une fonction JS à la deuxième partie mais je ne l'a comprend pas bien. Merci. P.S : Petit détail en passant, quand on remet la souris sur l'image grossit elle ne se charge plus. J'utilise du XMLhttp pour transmettre la variable, ça peut aussi venir de là. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yangzebul Posté(e) le 9 septembre 2008 Partager Posté(e) le 9 septembre 2008 Humm je n'ai pas trop compris ce que tu veux dire dant ton post-scriptum, mais pour le reste tu peux essayer de modifier la "classe" fisheyemenu comme ça : inhibitedElement : null, init : function () { var animElements = document.getElementById("fisheye_menu").getElementsByTagName("img"); var titleElements = document.getElementById("fisheye_menu").getElementsByTagName("span"); for(var j=0; j<titleElements.length; j++) { titleElements[j].style.display = 'none'; } for(var i=0; i<animElements.length; i++) { var y = animElements[i]; y.style.width = fisheyemenu.startSize+'px'; y.style.height = fisheyemenu.startSize+'px'; fisheyemenu.imgSmall(y); animElements[i].onmouseover = changeSize; animElements[i].onmouseout = restoreSize; animElements[i].onclick = selectElement; } function changeSize() { if(this===fisheyemenu.inhibitedElement) return; // si ton élement est celui avec le "focus" ne fait rien fisheyemenu.imgLarge(this); var x = this.parentNode.getElementsByTagName("span"); x[0].style.display = 'block'; if (!this.currentWidth) this.currentWidth = fisheyemenu.startSize; fisheyemenu.resizeAnimation(this,this.currentWidth,fisheyemenu.endSize,15,10,0.333); } function restoreSize() { if(this===fisheyemenu.inhibitedElement) return; // si ton élement est celui avec le "focus" ne fait rien var x = this.parentNode.getElementsByTagName("span"); x[0].style.display = 'none'; if (!this.currentWidth) return; fisheyemenu.resizeAnimation(this,this.currentWidth,fisheyemenu.startSize,15,10,0.5); fisheyemenu.imgSmall(this); } function selectElement(){ depart = this.id; fisheyemenu.inhibitedElement = this; } }, Ce qui change : - rajout d'un membre static fisheyemenu.inhibitedElement qui stocke l'élement actif - à l'initialisation on ajoute un "écouteur" sur le clic : animElements.onclick = selectElement; - dans changeSize et restoreSize rajout d'un point de sortie si l'élement est le dernier cliqué : if(this===fisheyemenu.inhibitedElement) return; - la fonction selectElement ou tu peux faire ce que tu veux du moment que tu actualise bien le membre static : fisheyemenu.inhibitedElement = this; Lien vers le commentaire Partager sur d’autres sites More sharing options...
qui.dominatur Posté(e) le 9 septembre 2008 Auteur Partager Posté(e) le 9 septembre 2008 Merci beaucoup. Tout ne marque pas parfaitement mais maintenant que tu as fait le plus gros je vais pouvoir bidouiller pour tout arranger bien Encore Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.