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 :

Faire disparaître une image avec un mouvement de la souris


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Par défaut Faire disparaître une image avec un mouvement de la souris
    Bonjour,

    Dans ma page html de galerie-photos, je souhaite faire disparaître une image lorsque la souris ou tout mouvement utilisateur touche à la galerie-photos. Cette page doit fonctionner sous IE:

    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
            <!-- TEST ima. déjà agrandie -->
    	<div id="big_img_loaded" style= "display:none;">				
    		<img 	src="../images/img_012.jpg" 
    			style="	width: auto;
    				height: auto;"						
    			alt="	img_012" />
    		<!-- texte accompagnant ima. -->						
    		<span 	style="	right:0;top:0;
    				margin-right:95px;
    				margin-top: 89px;									
    				width: auto;
    				height: auto;				
    				color:GrayText;
    				font-size:0.7em;">
    				Photo:&nbsp;Toto&nbsp;
    		</span>
    	</div>


    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<!-- TEST ima. déjà agrandie -->
    	<script type="text/javascript">	
     
    		let test = document.getElementById("galerie");
     
    		document.getElementById("big_img_loaded").style.display = "block"; <!-- Cette ligne fonctionne bien, mais pas les suiv.: -->
    		test.addEventListener("mouseenter", function(){
    			document.getElementById("big_img_loaded").style.display = "none";
    			});					
     
    	</script>

    L'image apparaît bien, mais ne disparaît pas lorsque la souris est sur la galerie. Que manque-t-il à ce bout de code ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour

    Ici, ton code ne contient aucun id "galerie";

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Par défaut
    Bonjour

    Cela fonctionne en partie, cependant le mouseenter ne fonctionne que sur le parent (le fond) et non sur la galerie. La photo doit disparaître seulement lorsque l'utilisateur en choisit une autre dans la galerie. Idéalement, la page doit fonctionner avec IE. Voici la galerie et le css:

    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
    18
    19
    20
    		        <!--Galerie-->
    			<div id="fond" >	
    				<div id="galerie">			
    					<ul>				
    						<li>
    							<a href="#"><img src="../images/img_012.jpg" alt="img_012"/>
    							<span>Photo:&nbsp;Toto&nbsp;</span></a>					
    						</li>
    						<li>
    							<a href="#"><img src="../images/img_013.jpg" alt="img_013"/>
    							<span>Photo:&nbsp;Titi&nbsp;</span></a>
    						</li>					
    						<li>
    							<a href="#"><img src="../images/img_014.jpg" alt="img_014"/>
    							<span>Photo:&nbsp;Tata&nbsp;</span></a>
    						</li>
    						<!-- etc... -->
    					</ul>
    				</div>
    			</div>

    Voici le code css:

    Code CSS : 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
    #fond {
            width:100%;  
            height:610px; 
            margin-top:-15px;
            background-color:lightgray;
            box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    }
     
     
    #galerie ul {	
            list-style: none;
            width: 300px;
            height: 300px;
            padding-top:30px; /* hauteur de la ligne des thumbnails */
            left:30px;
    }

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    D'un autre côté, si c'est un div et non une image qui déclenche l'event, tu as ce que tu demandes... (voir ton code)

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    test avec ton code: http://javatwist.imingo.net/galerietest.htm

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>...</title>
    <style>
    #fond {
            width:100%;  
            height:auto; 
            margin-top:-15px;
            background-color:lightgray;
            box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    }
     
     
    #galerie ul {   
            list-style: none;
            width: 300px;
            height: auto;
            padding-top:30px; /* hauteur de la ligne des thumbnails */
            left:30px;
    }
    img{margin:15px 25px;vertical-align:middle}
    </style>
     
    </head>
    <body>
    <div id="fond" >	
    	<div id="galerie">			
    		<ul>				
    			<li>
    				<a href="#"><img src="sm01.gif" alt="img_1"/>
    				<span>Photo:&nbsp;Tata&nbsp;</span></a>
    			</li>					
    			<li>
    				<a href="#"><img src="sm02.gif" alt="img_2"/>
    				<span>Photo:&nbsp;Tete&nbsp;</span></a>
    			</li>					
    			<li>
    				<a href="#"><img src="sm03.gif" alt="img_3"/>
    				<span>Photo:&nbsp;Titi&nbsp;</span></a>
    			</li>					
    			<li>
    				<a href="#"><img src="sm04.gif" alt="img_4"/>
    				<span>Photo:&nbsp;Toto&nbsp;</span></a>
    			</li>					
    			<li>
    				<a href="#"><img src="sm05.gif" alt="img_5"/>
    				<span>Photo:&nbsp;Tutu&nbsp;</span></a>
    			</li>					
    		</ul>
    	</div>
    </div>
     
    <div id="cadre">
    	<img src="sm46.gif" id="big_img_loaded" />
    </div>   
     
    <script>        
            const test = document.getElementById("galerie").querySelectorAll("img");
     
            for(let i=0;i<test.length;i++){
                    test[i].addEventListener("mouseenter", function(){
                            document.getElementById("big_img_loaded").style.display = "none";
                    });
                    test[i].addEventListener("mouseout", function(){
                            document.getElementById("big_img_loaded").style.display = "block";
                    })
            }
    </script>
    </body>
    </html>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Par défaut
    En fait j'ai trouvé une solution qui fonctionne bien en plaçant une div à l'intérieur de ul, afin de délimiter exactement l'endroit voulu de déclenchement mouseover. (pas mouseeenter), i.e. n'importe quelle photo de la galerie.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="fond" >	
            <div id="galerie">
    		<ul>
    		       <div id="overPhotos">			
    				<li>
                                           … etc.

    Je devrai optimiser le code, mais merci pour votre aide.

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    restons calme...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Par défaut
    restons calme...
    dsl, je ne comprends pas votre intervention. Lorsque je dis que je veux optimiser, ça s'applique à mon propre code et non au vôtre.

    Cordialement,

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

Discussions similaires

  1. [AC-2010] Faire apparaitre une image avec une case à cocher
    Par Squatina dans le forum IHM
    Réponses: 2
    Dernier message: 20/03/2011, 10h01
  2. [XL-2007] Faire apparaitre une image avec condition
    Par uffo86 dans le forum Excel
    Réponses: 13
    Dernier message: 11/05/2010, 09h59
  3. Comment faire disparaitre une image avec javascript?
    Par menoulette dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/09/2009, 18h29
  4. Faire clignoter une image avec la SDL?
    Par francoisd42 dans le forum SDL
    Réponses: 2
    Dernier message: 29/04/2009, 16h31
  5. faire dérouler une image avec l'api win32
    Par gdkenny dans le forum Windows
    Réponses: 6
    Dernier message: 26/11/2005, 21h46

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