Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/08/2011, 15h42   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Par défaut Edit : Div, changer la visibilité avec display

Bonjour, j’ai un petit soucis, j'ai la structure du site que je veux réaliser mais je cherche a afficher une grande partie de texte sur le passage des différentes composantes du menu.Cela marche bien avec un affichage simple de texte, avec une fonction basique en javascript :

Code javascript :
1
2
3
4
5
6
7
8
9
10
11
function affiche(toThis)
  {
  if (document.getElementById)
    {
    document.getElementById("description").innerHTML = toThis;
    }
  else if (document.all)
    {
    document.all["description"].innerHTML = toThis;
    }
  }

et un appel

Code html :
<a href="#" onMouseOver="affiche(' Affichage du texte ')">Let's ride ! </a><br>

Ce que je cherche a faire c'est a remplacer le texte qui sert de variable par quelquechose qui afficherais plusieurs ligne de texte, avec peut etre des images ou une certaine mise en page et je pensais a une fonction PHP ? Je vais peut etre dire une bétise mais l’idée qui me vient creer des fichiers séparés selon les choix du menus qui contientrait le texte approprié, et a lorsqu'on survole le lien, on fait appel à un include ?

Un grand merci d'avance
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h45   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 776
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 776
Points : 2 344
Points : 2 344
Bonjour,

J'ai pas très bien compris ton besoin. Tu veux afficher du texte sur plusieurs lignes au survol de ton lien c'est ça ?
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h46   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par FirePrawn Voir le message
Bonjour,

J'ai pas très bien compris ton besoin. Tu veux afficher du texte sur plusieurs lignes au survol de ton lien c'est ça ?
Oui c'est bien cela, avec la possibilité d'y inclure des images.
J'ai deux "div", l'un pour le menu, l'autre ou sera affiché le contenu souhaité.
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h49   #4
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 461
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 461
Points : 645
Points : 645
Il faut de l'ajax pour réaliser ton idée.
Ou mettre ton contenu dans des div hidden et a la survole tu affiche et tu cache comme ça tu aura pas besoin des appels ajax.
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h56   #5
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 776
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 776
Points : 2 344
Points : 2 344
J'aurais plus dit comme m4riachi aussi. Tu gardes ta fonction onMouseOver simplement cette fonction mets le div dans lequel tu as ton contenu en affichage. Il faut jouer avec les display pour ça
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h02   #6
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
L'utilisation des div-hidden pose problème, je devrais avoir a peu près 7 choix de menu donc 7 bloc différents, changer la visibilité les effaces juste a l'écran, mais la place occupée est toujours la.

J'ai vu par contre la possiblité d'utiliser display:none, mais ca fera quand meme une page pas mal chargée, que ce soit en php ou en java, n'est-il pas mieux de faire une fonction qui appelle un fichier où est écrit le bloc désiré ?
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h03   #7
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par FirePrawn Voir le message
J'aurais plus dit comme m4riachi aussi. Tu gardes ta fonction onMouseOver simplement cette fonction mets le div dans lequel tu as ton contenu en affichage. Il faut jouer avec les display pour ça
Je vais essayer ca, voir ce que ca donne, merci a vous deux
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h35   #8
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
N.B: Je continue a programmer en JS du coup je suis plus dans le bon forum, mais juste pour ce petit soucis je vais pas créer un autre topic, je le ferais après si besoin.

Je suis pas habitué au javascript, et avec une fonction du type

Code javascript :
1
2
3
4
5
6
7
8
9
10
11
function afficher(id)
{
	if (document.getElementById)
    {
		document.getElementById(id).style.display='block';
    }
	else if (document.all)
    {
		document.all["id"].style.display='block';
    }    
}
et un appel avec des div T1, T2..

Code html :
<a href="#" onMouseOver="afficher('T1')">Afficher T1</a><br>

Ca ne marche pas, je pensais reprendre la meme syntaxe en changeant ce qu'il fallait mais..

Edit: Désolé Bovino, suis un peu fatigué
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h43   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Code :
document.getElementById("id").style.display='block';
Là, tu recherches l'élément dont l'id est "id" et non celui passé en paramètre
Code :
document.getElementById(id).style.display='block';
Sinon
Tu devrais mettre en place des stats, juste pour voir combien de fois tu passes dans cette condition...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h53   #10
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Quoi qu'il en soit réussi, j'avais pas que ca comme petite erreur de syntaxe, merci bcp
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h57   #11
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 451
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 451
Points : 2 151
Points : 2 151
Ouaip, si jamais la fonction getElementById n'existait pas pour document dans certains navigateurs, je crois que la quasi totalité des scripts existants seraient à revoir.

En d'autres termes : inutile de faire ton test d'existence de cette fonction, ça perd du temps à l'écrire et c'est tout.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h58   #12
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Citation:
Envoyé par Loceka
Ouaip, si jamais la fonction getElementById n'existait pas pour document dans certains navigateurs, je crois que la quasi totalité des scripts existants seraient à revoir.
Et pourtant... IE3 n'implémente pas getElementById !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h00   #13
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par Loceka Voir le message
Ouaip, si jamais la fonction getElementById n'existait pas pour document dans certains navigateurs, je crois que la quasi totalité des scripts existants seraient à revoir.

En d'autres termes : inutile de faire ton test d'existence de cette fonction, ça perd du temps à l'écrire et c'est tout.
Oki doki

Edit: Cette méthode amène un autre petit problème, la ou avec l'affichage d'une ligne une ligne en remplaçait un autre, la les blocs restent et s'affichent donc les uns en dessous des autres, comment redéfinir le div qui s'est affiché précédemment ? Je vais chercher un peu, mais une idée serais de remettre tout les div contenu père a none, c'est possible ?
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h03   #14
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 451
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 451
Points : 2 151
Points : 2 151
Citation:
Envoyé par Bovino Voir le message
Et pourtant... IE3 n'implémente pas getElementById !
Flûte ! Va falloir que je refonde mes scripts !
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h12   #15
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Pour que seul le Div souhaité s'affiche, et donc qu'ils ne se surpepose pas les uns les autres un fois affiché, je pensais rajouter une boucle qui avant de mettre la selection visible, les mettais tous en cachés, du type

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function afficher(id)
{
        for(i=1;i<5,i++)
	{
		temp="T"+i;
		if (document.getElementById)
		{
		document.getElementById(temp).style.display='none';
		}
	}
	if (document.getElementById)
        {
		document.getElementById(id).style.display='block';
         }
}
Je suis en phase de test, mes div s'appellent simplement T1 à T4, mais ca ne marche pas, cela n'affiche plus rien du tout au survol.Une petite indication ?

P.S : Est-ce que le test "if (document.getElementById)" est toujours nécessaire lorsqu'on touche a une propiete ou si on rajoute du texte avec innerHTML ?
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h18   #16
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Code :
if (document.getElementById)
ce test ne sert à rien ! Supprime-le (et oublie-le à jamais) !

Sinon, il n'y a pas particulièrement de raison que ça ne fonctionne pas, si tant est que le paramètre id est bien renseigné...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h27   #17
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Ca ne marche pas, lorsque la fonction est :
Code :
1
2
3
4
function afficher(id)
{
		document.getElementById(id).style.display='block';
}
Cela affiche bien au survol, mais l'élément reste en place et le suivant s'affiche en dessous.

Mais en rajoutant juste la boucle for avant:
Code :
1
2
3
4
5
6
7
8
9
10
function afficher(id)
{
	var temp;
	for(var i=1;i<5;i++) [ J'avais mis une "," au lieu d'un ";" .. ]
	{
		temp="T"+i;
		document.getElementById(temp).style.display='none';
	}
		document.getElementById(id).style.display='block';
}
Cela n'affiche plus rien du tout, ca bloque a cause de la boucle non ? une erreur de syntaxe avec le temp ?
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h32   #18
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793


Tu es sûr que tu as bien 4 div dont les id sont respectivement "T1", "T2", "T3" et "T4" ?
Tu pourrais montrer la partie HTML correspondante ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h40   #19
Invité de passage
 
Inscription : juillet 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 11
Points : 0
Points : 0
Ca marche finalement bien avec
Code :
1
2
3
4
5
6
7
8
9
10
function afficher(id)
{
		var temp;
		for(var i=1;i<5;i++)
		{
			temp="T"+i;
			document.getElementById(temp).style.display='none';
		}
		document.getElementById(id).style.display='block';
}
Du a une erreur de frappe, désolé
Wookis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h15.


 
 
 
 
Partenaires

Hébergement Web