Problème insoluble (?) de son

cs_rasmulti Messages postés 5 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 janvier 2011 - 10 nov. 2010 à 15:33
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 12 nov. 2010 à 02:59
Bonjour,

je voudrais jouer un son au survol d'une image.
Avec javascript pas de problème.
Mais, pour compliquer les choses, cette image est traitée en rollover par css.
La page affiche en miniature la liste des images et quand on survole chaque miniature, celle-ci s'affiche agrandie, à côté de la colonne de miniatures.

Donc, l'affectation du son par javascript se fait sur l'image agrandie et on n'y a pas accès puis qu'elle affichée par rollover en css.

Je cherche depuis des jours à affecter le son à la miniature, ou que le survol de la miniature déclenche à la fois l'agrandissement ET la lecture du son.

Je ne voudrais pas être obligé de gérer l'agrandissement de la miniature par javavscript, car je serai obligé de créer, de stocker et d'afficher la miniature. Mais s'il le faut...

Voici mon code :
* les div où s'affichent les miniatures :
#thumbsg a:hover {
border-color: #ddd;
t
}
#thumbsd a:hover {
border-color: #ddd;
}
#thumbsg a:hover img {
position: absolute;
width: auto;
height: auto;
margin-top: 75px;
left: 120px;
top: 0;
border: 1px solid #333;

* le code html :
.....
<script>
function PlaySound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Play();
};

function StopSound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Stop();
}
</script>
  </head>
  
    

Fermez la fenêtre pour retrouver le menu


      

        #1

Voici la page en ligne :
http://linformatique.info/loc/plan.html


Merci de votre aide, toute solution est la bienvenue.

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
11 nov. 2010 à 10:27
Bonjour,
déplaces les événements onmouseover et onmouseout sur la balise A

;O)
0
cs_rasmulti Messages postés 5 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 janvier 2011
11 nov. 2010 à 19:18
Merci, mais rien à faire.
Est-ce bien comme ceci qu'il faut faire :
#1

0
cs_rasmulti Messages postés 5 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 5 janvier 2011
11 nov. 2010 à 20:22
Stop...
ça fonctionne !
merci du tuyau.
A noter : il vaut mieux que les sons soient au format .wav. Je ne sais pas pourquoi les .mp3 fonctionnent une fois sur deux.

D'autre part, ça ne fonctionnait pas au départ, car j'utilisais Firefox et j'avais désinstallé Java, suit à un trojan qui est arrivé dans une faille de sécurité de java. Son nom, pour ceux que ça intéresse : JAVA/Agent.AH et dérivés : JAVA/Agent.AL.3 et .AJ.4
Seul Avira a pu le neutraliser (version 10)
Et pourtant j'étais à jour pour java, suite aux problèmes qu'ils ont déjà eu il y a 2-3 mois.

Ensuite, je suis surpris que le login de javascript.fr appelle java ?! (ou alors mon Firefox a eu des misères...)

Enfin, j'ai découvert un navigateur formidable, Maxthon 3. Essayez-le, ça vaut le coup d'oeil (je n'ai pas d'actions chez eux...)

Donc, problème résolu et encore merci à PetroleTeam (pas en pénurie d'idées !).

P.S : ci-dessous le bon code pour ceux que ça intéresse :
entre les balises <head> :
<script>
function PlaySound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Play();
};

function StopSound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Stop();
}
</script>

et dans le :
#1
#2

Remarques :
* les sons doivent être courts et au format .wav, car les mp3 fonctionnent un fois sur 2 (pourquoi, je ne sais pas, peut-être les convertir en plus faible qualité ?)
* il faut bien numéroter les id de chaque son, puisque ce sont les fonctions PlaySound et StopSound qui sont appelées
* les attributs title et alt sont facultatifs
* vous pouvez aussi utiliser onclick, onmousedown ou onkeyxxx
@+
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
11 nov. 2010 à 21:56
il semblerait que de la façon dont tu procèdes il y ait une succession de déclenchement de mouseover et mouseout dans la foulée le temps que ton image s'échappe de la balise A pour se positionner, activant puis interrompant la musique.

Essaies peut être ceci
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>...</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
a span {
  display : none;
}
a img {
  width  : 70px;
  height : 70px;
  border : 1px solid #e0e0e0;
}
span img {
  width : auto;
  height : auto;
  border : 0;
}
a:hover span {
  position : absolute;
  margin-top : 75px;
  display : block;
  left : 120px;
  top : 0;
  border : 1px solid #333;
}
</style>
<script type="text/javascript">
function PlaySound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Play();
};

function StopSound(soundobj) {
  var thissound=document.getElementById(soundobj);
  thissound.Stop();
}
</script>
</head>

#1


</html>
je te laisse découvrir...

;O)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
12 nov. 2010 à 02:59
Je ne sais pas pourquoi les .mp3 fonctionnent une fois sur deux.


Tu pourrais essayer SoundManager2, un mélange de Flash et de javascript

JDMCreator
--------
Participez au nouveau projet : la wiki sur le javascript !
fr.jsinfo.wikia.com
0
Rejoignez-nous