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

JavaScript Discussion :

apparition photo lors du clique sur le texte


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut apparition photo lors du clique sur le texte
    Bonjour a tous, j'espère être dans la bonne session puisque je ne c'est pas trop comment réaliser ce que je veux faire...
    Voila j'ai un petit souci j'aimerai que lorsque je clique sur un texte une image correspondant apparaisse a gauche.
    Je m'explique, voila un petit exemple j'aurai une liste correspondant a différents secteurs d'activités comme sa!

    - premier texte
    - deuxième texte
    - troisième texte
    - quatrième texte
    - ....

    J'aimerai que lorsque je clique sur sur un des texte la photo correspondant apparaisse a gauche que après si on clique sur un autre texte la photo se remplace par celle qui y est déjà et ainsi de suite

    J'ai trouvé un petit bout de code qui permet de "switcher" entre Afficher/Cacher une photo mais le souci est que chaque photo est indépendante lorsque je clique sur le texte 1 la photo 1 s'affiche, lorsque je clique sur le texte 2 la photo 2 s'affiche aussi mais en dessous la photo 1 au lieu de la remplacer.

    voila le petit bout de code:
    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
    28
    29
    <script type="text/javascript">
    // La fonction de base pour modifier le style d'affichage d'un élément
    function Affiche(id,type) {
    	try	{
    	document.getElementById(id).style.display = type;
    	}
    	catch (err) {
    		if (err.message != 'document.getElementById(id) has no properties') {
    			throw err;
    		}
    	}
    }
    // Fonction pour "switcher" entre Afficher/Cacher
    function Switcher(id, type) {
    switch (document.getElementById(id).style.display) {
    	case type:
    		Affiche(id, 'none');
    	break;
    	default :
    		Affiche(id,type);
    	break;
    	}
    }
    </script>
     
    <a onclick='Switcher("image1", "block")' class="test">Mon texte</a>
    <img src="image1.jpg" id="image1" class="cache" />
    <a onclick='Switcher("image2", "block")' class="test">Mon texte2</a>
    <img src="image2.jpg" id="image2" class="cache" />
    et le code css:
    En espérant que j'ai été assez clair
    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Tu te compliques la vie pour pas grand chose.
    Au lieu d'avoir plusieurs images que tu affiches ou cache, tu ferais mieux d'en avoir une seule dont tu modifies la propriété src en fonction du click.
    Par exemple :
    Code html : 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
    <script type="text/javascript">
    // La fonction de base pour modifier le style d'affichage d'un élément
    function Affiche(photo) {
            try     {
            document.getElementById('image').src = 'image' + photo + '.jpg';
            }
            catch (err) {
                    if (err.message != 'document.getElementById(id) has no properties') {
                            throw err;
                    }
            }
    }
    </script>
     
    <img src="image1.jpg" id="image" />
    <a onclick='Affiche(1)' class="test">Mon texte</a>
    <a onclick='Affiche(2)' class="test">Mon texte2</a>
    Dans l'exemple, une image par défaut est affichée mais ça peut se modifier facilement.
    Tu noteras aussi que j'ai modifié le nom du paramètre, id étant particulièrement inapproprié puisque c'est un mot clé de JavaScript !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut
    merci pour l'astuce Bovino mais je n'arrive pas a faire fonctionné ton code je suis vraiment novice en javascript. Pourrais tu m'expliquer le principe, j'ai testé pas mal de chose mais rien ni fait. Je pensais surtout que niveau de cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onclick='Affiche(1)' class="test">Mon texte</a>
    Il fallait changer le "1" par le nom de la photo comme "photo1" ou "photo1.jpg" mais sa ne marche, j'ai testé aussi autre choses en vain...

    Merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Si cela peut te simplifier "la vie" modifie légèrement le code de Bovino comme suit :

    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
    <script type="text/javascript">
    // La fonction de base pour modifier le style d'affichage d'un élément
    function Affiche(photo) {
    	try	{
    	//document.getElementById('image').src = 'image' + photo + '.jpg';
    	document.getElementById('image').src = photo;
    	}
    	catch (err) {
    		if (err.message != 'document.getElementById(id) has no properties') {
    			throw err;
    		}
    	}
    }
    
    ...
    
    <a onclick='Affiche("image1.jpg")' class="test">Mon texte</a>
    
    </script>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut
    a ok merci je vois maintenant le truc j'avais pas pigé
    merci a tous affaire résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/10/2011, 09h56
  2. Réponses: 2
    Dernier message: 19/01/2010, 16h12
  3. Empecher la fermeture d'un frame lors du clique sur croix
    Par ThitoO dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 08/12/2008, 18h30
  4. [JQuery] Du texte dans une div lors du clique sur un lien
    Par Nimothenicefish dans le forum jQuery
    Réponses: 5
    Dernier message: 28/11/2008, 15h33
  5. [PHP-JS] Problème lors du clique sur une option
    Par sara21 dans le forum Langage
    Réponses: 7
    Dernier message: 13/05/2007, 04h01

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