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 :

Cacher des blocks


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 59
    Points
    59
    Par défaut Cacher des blocks
    Bonjour à tous, j'ai un petit soucis mais je n'arrive pas à le résoudre en solo :/


    Je vous explique : j'ai 5 images (bleu claire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <img id="img1" onmouseover="this.src='img/ajout_application.jpg'" onmouseout="this.src='img/ajout_application2.jpg'" src="img/ajout_application2.jpg" onclick="fnClick2( this, 'bloc_application');"/>
          <img id="img2" onmouseover="this.src='img/ajout_url.jpg'" onmouseout="this.src='img/ajout_url2.jpg'" src="img/ajout_url2.jpg" onclick="fnClick2( this, 'bloc_url');"/>
          <img id="img3" onmouseover="this.src='img/suppr_appli.jpg'" onmouseout="this.src='img/suppr_appli2.jpg'" src="img/suppr_appli2.jpg" onclick="fnClick2( this, 'bloc_suppr_appli');"/>
    	  <img id="img4" onmouseover="this.src='img/suppr_url.jpg'" onmouseout="this.src='img/suppr_url2.jpg'" src="img/suppr_url2.jpg" onclick="fnClick2( this, 'bloc_suppr_url');"/>
    	  <img id="img5" onmouseover="this.src='img/ajout_serv.jpg'" onmouseout="this.src='img/ajout_serv2.jpg'" src="img/ajout_serv2.jpg" onclick="fnClick2( this, 'bloc_ajout_serv');"/>
    quand on click sur une image un block apparait et l'image devient bleu foncé, si on reclick sur la meme image le block disparait et l'image redevient bleu clair.

    Mon soucis est que si on click sur une autre image un autre block apparait mais sans cacher l'ancien ni rendre l'ancienne image bleu foncé en bleu clair.

    Donc j'aimerais que lorsqu'on click sur une image lorsqu'un block est deja afficher cela le remette en display:none et l'image en bleu clair puis cela affiche le nouveau block.


    Voici mon code js : et en ancienneDiv ce que j'ai essayé de faire mais sans succès
    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
    30
    31
    //var ancienneDiv = "null";
     
    				//(this, bloc_url)
    function fnClick2( obj, id_div){
    	 // document.getElementById(ancienneDiv).style = 'none';
    	  // get element a afficher/masquer
    	  var oDiv = document.getElementById(id_div);
    	  // affiche la DIV
    	  oDiv.style.display = 'block';
    	  // sauvegarde des evenements
    	  if( !obj.saveEvent){
    	    obj.saveEvent = {
    	      over : obj.onmouseover,
    	      out : obj.onmouseout,
    	      click : obj.onclick
    	    }
    	  }
    	  // redefini les evenements
    	  obj.onmouseout = function(){};
    	  obj.onmouseover = function(){};
    	  obj.onclick = function(){
    	    // restaure les evenements
    	    this.onmouseout = this.saveEvent.out;
    	    this.onmouseover = this.saveEvent.over;
    	    this.onclick = this.saveEvent.click;
    	    // masque la DIV
    	    oDiv.style.display = 'none';
    	   // ancienneDiv = id_div;
     
    	  };
    }
    J'espère que j'ai été clair
    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Ton approche avec la variable ancienneDiv me paraît pas mal pourtant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var ancienneDiv;
    function fnClick2( obj, id_div){
    	if (ancienneDiv) {
    		ancienneDiv.style.display = 'none';
    	}
    	// get element a afficher/masquer
    	var oDiv = document.getElementById(id_div);
    	ancienneDiv = oDiv;
    }
    Comme tu peux le voir, tu peux directement passer l'élément div en variable, pas seulement son ID.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Merci

    Pour les block ca marche niquel, je vais essayé de faire un truc du même genre avec les images je vous tiens au courant

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Alors j'ai essayé un truc de ce genre mais ca fonctionne pas :/


    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
    var ancienneDiv;
    var ancienneIMG;
    var ancienneSRC;
     
    				//(this, id_block a afficher, id_img, src_de_image))
    function fnClick2( obj, id_div,id_img,src_img){
    	if (ancienneDiv) {
    		ancienneDiv.style.display = 'none';
    		ancienneIMG.src = ancienneSRC;
    	}
    	  // get element a afficher/masquer
    	  var oDiv = document.getElementById(id_div);
    	  ancienneDiv = oDiv;
    	  ancienneIMG = document.getElementById(id_img);
    	  ancienneSRC = src_img;

  5. #5
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    T'es sûr que tu sauvegarde pas l'image après qu'elle ait été changée ? (du coup tu sauvegarde la bleue fonçée dans ancienneSRC)

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Enfète je m'étais trompé j'avais mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ancienneSRC = src_de_image;
    au lieu de

    donc ca marche mais pas encore comme je le souhaiterais :/

    - au début aucun block afficher, 5 images en bleu clair, onmouseover elles deviennent bleu foncé et onmouseout redeviennent bleu clair
    - au click l'image reste bleu foncé et le block apparait
    - si on reclick sur la même image c'est bon image redevient bleu clair et le block disparait
    - en revanche si on click sur une autre image, l'ancien block disparait et l'image redevient bleu clair, la nouvelle image devient foncé et le block apparait mais par contre au onmouseover et onmouseout ne fonctionne plus sur l'ancienne image que l'on avait cliqué

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

Discussions similaires

  1. Cacher des objets grâce à l'Objet TreeView
    Par The_Warlord dans le forum Composants VCL
    Réponses: 2
    Dernier message: 08/11/2004, 09h50
  2. Besoin d'aide : afficher / cacher des layers
    Par mickeliette dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/10/2004, 11h03
  3. [C#] Cacher des onglet(s)
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/04/2004, 23h17
  4. Comment cacher des propriétés dans un nouvel objet ?
    Par Pedro dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/10/2003, 18h53
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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