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 :

Affichage d'une div au survol (ou clic) d'une image


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Affichage d'une div au survol (ou clic) d'une image
    Bonjour ! et merci pour votre indulgence car je débute.

    J'ai créé un player de musique qui marche en js + html et je voudrais que celui ci ne s'affiche que lorsqu'on clique sur une icône.
    Je ne parviens pas à le faire et il ne se passe rien lorsque je mets un hover...

    Merci à vous si vous avez une idée !

    Voici mon code :

    javascript
    Code javascript : 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
    function loadSong(link,playerId)
    {
    	var player=document.getElementById(playerId);
    	player.src=link.href;
    	player.load();
    	player.play();
    }
     
    function preparePlayer()
    {
    	var links=document.getElementById("playlist").getElementsByTagName("a");
    	var player=document.getElementById('player');
    	var audioSource=document.getElementById("source");
    	var z;
    	for (z=0;z<links.length;z++)
    		links[z].onclick=function(e) {loadSong(this,"player");return false;};
    	player.addEventListener("play",function() {
    		var k,km=links.length;
    		for (k=0;k<km;k++)
    		{
    			if (audioSource.src==links[k].href)
    			{
    				audioSource.src=this.src;
    				this.setAttribute("data-k",k);
    				links[k].style.color="#E9967A";
    			}
    			else if (this.src==links[k].href)
    			{
    				this.setAttribute("data-k",k);
    				links[k].style.color="#E9967A";
    			}
    			else links[k].style.color="grey";
    		}
    	},false);
    	player.addEventListener("ended",function() {
    		var k=parseInt(this.getAttribute("data-k"));
    		if (k<(links.length-1)) k++;else k=0;
    		loadSong(links[k],"player");
    	},false);
    }
     
    window.addEventListener("load",preparePlayer,false);
    </script>

    html
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <div id="MUSIC">
      <audio tabindex="0" id="player" preload="auto" controls="controls">
      		<source id="source" src="musiques/Django_Reinhardt_La_Mer.ogg">
      	Votre navigateur ne reconnaît pas la balise audio HTML5
      </audio>
    <ul id="playlist">
    <li><a href="musiques/Django_Reinhardt_La_Mer.ogg" onclick="loadSong()">Django Reinhardt - La mer</a></li>
    <li><a href="musiques/Léo_Ferré_chante_Baudelaire_L_Albatros.ogg" onclick="loadSong()">Léo Ferré - L'Albatros (Baudelaire)</a></li>
     
    </ul>

    et 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #MUSIC{
          position:fixed;
            margin-top: -20%;
            margin-left : 3%;
           }
     
     
          #player {
          margin: 0;
          padding: 1;
               font-family: sans;
               font-size: 12px;
          width: 210px;
             background-color: #48D1CC;
             }
             #playlist {
          border: solid 5px #48D1CC;
          font-family: "Biko";
          font-size: 13px;
               background-color: #777;
          list-style: none;
          margin: 0px;
          padding: 0px;
          width: 200px;
             }
             #playlist li:nth-child(even) {
               background-color: #48D1CC;
             }
             #playlist li:nth-child(odd) {
               background-color: #F0FFFF;
             }
             #playlist li a,
             #playlist li a:visited,
             #playlist li a:hover {
               color: black;
          padding-left: 2px;
          padding-right: 2px;
          text-decoration: none;
             }

  2. #2
    Membre éclairé
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Points : 705
    Points
    705
    Par défaut
    Il faudrait un peu plus de code pour madame Irma la voyante..
    Avec un margin-top de -20% comment savoir comment cela se situe par rapport à la page.
    un petit aperçu exploitable aurait été bien. Comme un petit codepen.
    il manque aussi un </div> dans le code donné.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    sans aller plus loin
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="musiques/Django_Reinhardt_La_Mer.ogg" onclick="loadSong()">Django Reinhardt - La mer</a></li>
    aucun passage de paramètre à la fonction sur le onclick, alors que la fonction en demande
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    function loadSong(link,playerId)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    "lorsqu'on clique sur une icône" veut dire "action côté client".
    C'est le rôle de JavaScript.

    Je déplace la discussion dans le bon forum

    [EDIT] @NoSmoking
    En fait, il faut même supprimer les onclick="......", car le lancement est géré dans le code JavaScript dans preparePlayer() (avec récupération du href, id du player...).

    Sinon, je viens de tester : http://codepen.io/jreaux62/pen/KaONpw
    Ca fonctionne plutôt bien !
    Dernière modification par Invité ; 21/02/2017 à 08h19.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci ! c'est déjà ça de corrigé

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai mis à jour : http://codepen.io/jreaux62/pen/KaONpw

    • player masqué au départ
    • affichage sur clic dans la playlist
    • masquage sur clic "Pause"

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/05/2014, 11h50
  2. Affichage d'une div au survol
    Par KumKum007 dans le forum jQuery
    Réponses: 1
    Dernier message: 14/03/2014, 02h26
  3. Réponses: 1
    Dernier message: 21/02/2014, 19h02
  4. Afficher une div au survol de la souris sur une autre div
    Par Stouille89 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/06/2010, 13h54
  5. Modifier les propriétés d'une div au survol d'une autre
    Par umeboshi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/09/2008, 18h02

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