IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

[js][Phatfusion][menu avec largeurs fixes]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 17
    Points
    17
    Par défaut [js][Phatfusion][menu avec largeurs fixes]
    Bonjour à tous !

    Tout d'abord, je ne suis pas une très grande pointure en javascript, on ne peut pas connaître tous les langages web :p
    Je travaille actuellement avec le script "Phatfusion ImageMenu".
    L'avancement de mon travaille est visionnable ici.

    Tout fonctionne comme prévu, seulement une partie du fonctionnement ne me plaît pas : j'ai assigné à chaque <li> une largeur fixe dans le fichier css. J'aimerais modifier le fichier imagemenu.js afin que lorsqu'on enlève la souris de sur un menu, l'affichage du menu revienne à l'affichage de base (celui qu'on a lorsqu'on arrive sur le site)

    je pense que tout se joue dans cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    reset: function(num){
    		if($type(num) == 'number'){
    			var width = this.widths.openOthers;
    			if(num+1 == this.elements.length){
    				width += this.options.border;
    			}
    		}else{
    			var width = this.widths.closed;
    		}
     
    		var obj = {};
    		this.elements.each(function(el,i){
    			var w = width;
    			if(i == this.elements.length-1){
    				w = width+5
    			}
    			obj[i] = {'width': w};
    		}.bind(this));
     
    		if($type(num) == 'number'){
    			obj[num] = {'width': this.widths.openSelected};
    		}
     
    		this.fx.start(obj);
    	}
    J'ai bien essayé toute la nuit de la modifier afin d'attribuer la bonne largeur à chaque élément, mais en vain.

    Si quelqu'un veut bien m'aider, m'aiguiller, me montrer comment procéder, ce sera vraiment sympa !
    Merci bcp d'avance ! a bientôt !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    En plusieurs heures de rexherches, je n'ai encore rien trouvé qui fonctionne à ma guise. En plus avec le debuggeur JS super top, moi qui ne connait pas bien la syntaxe JS, je ne sais jamais si mon idée pourrait fonctionner ou si mon problème vient d'une faute de syntaxe.

    Bref, mon but est toujours de garder mes li à largeurs prédéfinies sur le mouseleave et donc de modifier l'action lancée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    el.addEvent('mouseleave', function(e){
    				new Event(e).stop();
    				this.reset(this.options.open);	
    			}.bind(this));
    Pour commencer, j'ai ajouté ceci au début du script afin de récupérer dans un tableau les largeurs de chaque <li> :
    var largeurs = new Array();
    for (z=0; z<=7; z+)
    { largeurs[z] = this.elements[z].getStyle('width').toInt(); }
    (je ne sais meme pas si c'est syntaxiquement correct :p)

    et enfin pour la modif de la fonction reset, à l'origine celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    reset: function(num){
    		if($type(num) == 'number'){
    			var width = this.widths.openOthers;
    			if(num+1 == this.elements.length){
    				width += this.options.border;
    			}
    		}else{
    			var width = this.widths.closed;
    		}
     
    		var obj = {};
    		this.elements.each(function(el,i){
    			var w = width;
    			if(i == this.elements.length-1){
    				w = width+5
    			}
    			obj[i] = {'width': w};
    		}.bind(this));
     
    		if($type(num) == 'number'){
    			obj[num] = {'width': this.widths.openSelected};
    		}
     
    		this.fx.start(obj);
    	}
    que je modifie en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    reset: function(num){
    		var obj = {};
    		if($type(num) == 'number'){
    			var width = this.widths.openOthers;
    			if(num+1 == this.elements.length){
    				width += this.options.border;
    			}
    			this.elements.each(function(el,i){
    			var w = width;
    			if(i == this.elements.length-1){
    				w = width+5
    			}
    			obj[i] = {'width': w};
    			}.bind(this));
    		}else{
    			for (m=0; m<=7; m+)
    				{ if (num != m){obj[m] = {'width': largeurs[m]}; }}
    		}
     
    		if($type(num) == 'number'){
    			obj[num] = {'width': this.widths.openSelected};
    		}
     
     
     
    		this.fx.start(obj);
    	}
    Evidemment, ca ne fonctionne pas, vous pouvez donc voir mon désharroi moi qui tente ce genre de bricolage depuis des heures sans résultat positif

    Je vous appelle donc au grand secours pour m'aider à modifier ce merveilleux script afin que les <li> reprennent leur largeur d'origine sur le 'mouseleave'.
    Je vous remercie d'avance !

    Tom.

Discussions similaires

  1. [Toutes versions] Export csv ou txt avec largeur fixe et séparateur point virgule
    Par shizzle971 dans le forum Excel
    Réponses: 1
    Dernier message: 07/05/2014, 20h56
  2. Menu de largeur fixe, contenu dynamique
    Par Mike91 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 26/07/2010, 21h44
  3. Réponses: 3
    Dernier message: 10/05/2007, 14h12
  4. [JMenu] Largeur d'un menu avec les images
    Par Don ViP dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/04/2007, 16h06
  5. colone du tableau avec largeur fixe et firefox
    Par clara2005 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 26/09/2006, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo