Avatar billede ch007 Nybegynder
06. september 2008 - 10:31 Der er 17 kommentarer og
1 løsning

Mus over tekst medfører Billede

Hvordan er det man laver følgende:

- Peter
- Hans
- Morten

Når jeg holder musen over Peter kommer der et billede op af ham.
Når jeg holder musen over Hans kommer der et billede op af ham.
Etc...

Skal virker i IE, FF, Safari
Avatar billede w13 Novice
06. september 2008 - 10:39 #1
Det kommer jo helt an på, hvor du vil have billedet til at være.

Det kunne f.eks. laves således:

<script type="text/javascript">
function showPic(s){
  var o=document.getElementById("personpic");

  if(!s){
    o.style.display="none";
    return false,
  }

  o.setAttribute("src",s);
  o.style.display="block";
}
</script>

<img id="personpic" style="display:none" alt="Personbillede">

- <span onmouseover="showPic('peter.jpg')" onmouseout="showPic()">Peter</span><br>
- <span onmouseover="showPic('hans.jpg')" onmouseout="showPic()">Hans</span><br>
- <span onmouseover="showPic('morten.jpg')" onmouseout="showPic()">Morten</span><br>
Avatar billede w13 Novice
06. september 2008 - 10:39 #2
Så sætter du bare:

<img id="personpic" style="display:none" alt="Personbillede">

der hvor det skal vises.
Avatar billede ch007 Nybegynder
06. september 2008 - 11:07 #3
Jeg vil gerne bare have at det kommer op ved siden af musen - som ALT-tekst ,)
Avatar billede ch007 Nybegynder
06. september 2008 - 11:13 #4
Bonus spørgsmål :)

Hvis jeg nu vil have billedet et bestemt sted bruger jeg din første kode. Kan jeg få en tekst under der også. Så der vises billedet og under står der Hans...
Avatar billede w13 Novice
06. september 2008 - 11:20 #5
Følgende kode skulle gerne gøre det muligt at få tekst med:

<script type="text/javascript">
function showPic(s,sText){
  var o=document.getElementById("personpic");

  if(!s){
    o.style.display="none";
    return false,
  }

  o.getElementsByTagName("img")[0].setAttribute("src",s);
  o.lastChild.nodeValue=sText;
  o.style.display="block";
}
</script>

<div id="personpic" style="display:none"><img alt="Personbillede">&nbsp;</div>

- <span onmouseover="showPic('peter.jpg','Dette er Peter')" onmouseout="showPic()">Peter</span><br>
- <span onmouseover="showPic('hans.jpg','Dette er Peter')" onmouseout="showPic()">Hans</span><br>
- <span onmouseover="showPic('morten.jpg','Dette er Peter')" onmouseout="showPic()">Morten</span><br>
Avatar billede w13 Novice
06. september 2008 - 11:25 #6
Det med musen bliver mere kompliceret og kræver, at man gør det lidt anderledes. Det var derfor jeg kommenterede, at du jo slet ikke skrev noget om, hvordan billedet skulle vises.

Det kan vist gøres nogenlunde sådan her:

<script type="text/javascript">
function showPic(s,sText){
  var o=document.getElementById("personpic");

  if(!s){
    o.style.display="none";
    return false,
  }

  o.getElementsByTagName("img")[0].setAttribute("src",s);
  o.lastChild.nodeValue=sText;
  o.style.top=Y+10+"px";
  o.style.left=X+10+"px";
  o.style.display="block";
}

var bIE=document.all?true:false;
if(!bIE)document.captureEvents(Event.MOUSEMOVE);

document.onmousemove=getMouseXY;

var X = Y = 0;

function getMouseXY(e){
  if(bIE){
    X = event.clientX + document.body.scrollLeft;
    Y = event.clientY + document.body.scrollTop;
  }else{
    X = e.pageX;
    Y = e.pageY;
  }
  if(X<0)X=0;
  if(Y<0)Y=0;
  return true;
}
</script>

<div id="personpic" style="position:absolute;display:none"><img alt="Personbillede">&nbsp;</div>

- <span onmouseover="showPic('peter.jpg','Dette er Peter')" onmouseout="showPic()">Peter</span><br>
- <span onmouseover="showPic('hans.jpg','Dette er Peter')" onmouseout="showPic()">Hans</span><br>
- <span onmouseover="showPic('morten.jpg','Dette er Peter')" onmouseout="showPic()">Morten</span><br>

Det har selvfølgelig ikke noget med en rigtig ALT-tekst at gøre, det efterligner blot. (Og en ALT-tekst ligger kun på billeder, så du mener nok en TITLE-tekst. =)
Avatar billede w13 Novice
06. september 2008 - 13:55 #7
Tak for point!
Avatar billede ch007 Nybegynder
07. september 2008 - 13:48 #8
Jeg var vist lidt for hurtig...

Det virker ikke:

<script type="text/javascript">
function showPic(s,sText){
  var o=document.getElementById("personpic");

  if(!s){
    o.style.display="none";
    return false,
  }

  o.getElementsByTagName("img")[0].setAttribute("src",s);
  o.lastChild.nodeValue=sText;
  o.style.display="block";
}
</script>

<div id="personpic" style="display:none"><img alt="Personbillede">&nbsp;</div>

- <span onmouseover="showPic('Peter.jpg','Dette er Peter')" onmouseout="showPic()">Peter</span><br>
- <span onmouseover="showPic('hans.jpg','Dette er Peter')" onmouseout="showPic()">Hans</span><br>
- <span onmouseover="showPic('morten.jpg','Dette er Peter')" onmouseout="showPic()">Morten</span><br>

<BR><BR><BR>

<img id="personpic" style="display:none" alt="Personbillede">


Fejl:

syntax error
[Break on this error] }\n
test.htm (line 9)

showPic is not defined
[Break on this error]
test.htm (line 1)

showPic is not defined
[Break on this error]
test.htm (line 1)
Avatar billede w13 Novice
07. september 2008 - 13:57 #9
return false,
skal være:
return false;

Så det er nok syntax-error'en.

Kan jeg se siden i aktion/inaktion? Ellers har jeg ikke umiddelbart bud på de 2 andre fejl.
Avatar billede ch007 Nybegynder
07. september 2008 - 15:06 #10
http://www.houlborg.dk/eksperten/test.htm

Det virker nogenlund nu... Jeg vil dog gerne kunne bestemme hvor billedet skal åbnes. Og teksten skal stå under...

Fx. Al tekst i venstre side af mit vindue og billedet åbnes centret
Avatar billede w13 Novice
07. september 2008 - 15:11 #11
Ret dette:

<div id="personpic" style="display:none"><img alt="Personbillede">&nbsp;</div>

til:

<div id="personpic" style="display:none"><img alt="Personbillede"><br>&nbsp;</div>

Så står teksten på en ny linje. Og du flytter bare den linje derhen, hvor de skal vises.
Avatar billede ch007 Nybegynder
07. september 2008 - 15:42 #12
Jeg synes jeg har prøvet at flytte den linie rundt. Se min kilde kode... <BR><BR><BR>....
Avatar billede w13 Novice
07. september 2008 - 18:13 #13
Jo, men du skal ikke bruge <br>. Du skal f.eks. prøve at indsætte den under dine navne.
Avatar billede ch007 Nybegynder
09. september 2008 - 08:44 #14
Prøv at se min kildekode på

http://www.houlborg.dk/eksperten/test.htm

Den burde jo vise billedet i kolonne to, men det gør den ikke?
Avatar billede ch007 Nybegynder
10. september 2008 - 23:00 #15
Er du der stadig w13? Synes ikke det virker som det burde...
Avatar billede w13 Novice
11. september 2008 - 02:00 #16
Burde den det? :)

Du har godt nok indsat (noget af) det i kolonne 2, men du har ikke fjernet det fra kolonne 1. Derved eksisterer elementet 2 steder, og koden vælger så bare det første af de 2 - dvs. elementet i kolonne 1!

Ret til:

<script type="text/javascript">
function showPic(s,sText){
  var o=document.getElementById("personpic");

  if(!s){
    o.style.display="none";
    return false;
  }

  o.getElementsByTagName("img")[0].setAttribute("src",s);
  o.lastChild.nodeValue=sText;
  o.style.display="block";
}
</script>
<Table border='1'><TR><TD width='300'>

- <span onmouseover="showPic('Peter.png','<BR>Dette er Peter')" onmouseout="showPic()"><br>Peter</span>
- <span onmouseover="showPic('Peter.png','<BR>Dette er Peter')" onmouseout="showPic()"><br>Hans</span>
- <span onmouseover="showPic('Peter.png','<BR>Dette er Peter')" onmouseout="showPic()"><br>Morten</span>

</TD><TD width='300'>

<div id="personpic" style="display:none"><img alt="Personbillede">&nbsp;</div>

</TD></TR></Table>
Avatar billede ch007 Nybegynder
13. september 2008 - 18:17 #17
Tak!
Avatar billede w13 Novice
13. september 2008 - 20:23 #18
Tak for point. =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester