Avatar billede newbie.dk Praktikant
15. marts 2008 - 01:54 Der er 7 kommentarer og
1 løsning

Mouseover - vise tekst og billede andet sted på siden

Jeg har søgt næste alt igennem, og jeg kan ikke lige finde det jeg skal bruge.

Jeg har et billede med nogle hotspots. Jeg vil gerne lave det så når man køre musen hen over disse hotspots, at det stadig er et link, men at der kommer et billede og en forklarende tekst til dette hotspot et andet sted på siden.

<area href="side.html" shape="polygon" coords="200, 50, 230, 250, 70, 220, 50">

Er der nogle der kan hjælpe med dette?
Avatar billede olebole Juniormester
15. marts 2008 - 01:57 #1
<ole>

Ja, men så må du informere noget mere - og meget gerne lægge et link til den side, det skal virke i  :)

/mvh
</bole>
Avatar billede newbie.dk Praktikant
15. marts 2008 - 02:07 #2
Hvad tænker du på? Du kan lige se den nuværende kode:
<table border="0" width="510" id="table1">
    <tr>
        <td width="100"></td>
        <td>Forklarende tekst + billede her</td>
        <td width="100"></td>
    </tr>
</table>
<table border="0" width="510" id="table2">
    <tr>
        <td>
        <p align="center"><map name="Map1">
        <area href="side.html" shape="polygon" coords="200, 50, 230, 250, 70, 220, 50">
        <area href="side2.html" shape="polygon" coords="230, 250, 170, 160, 200, 40">
        </map>
        <img border="0" src="pic.jpg" width="400" height="600" usemap="#Map1"></td>
    </tr>
</table>
Avatar billede roenving Novice
15. marts 2008 - 10:23 #3
F.eks.

<script type="text/javascript">
var desc = {
  "id1":["http://www.eksperten.dk/img/elogo.png","Her er en forklarende tekst, der kan stå ved siden af billedet"],
  "id2":["http://www.eksperten.dk/img/elogoq.png","Her er en forklarende tekst II, der kan stå ved siden af billedet"]
}
function showText(id){
  var tab = document.getElementById("table1");
  tab.getElementsByTagName("img")[0].setAttribute("src",desc[id][0]);
  tab.getElementsByTagName("span")[0].firstChild.nodeValue = desc[id][1];
  tab.style.visibility = "visible";
}
function hideText(){
  document.getElementById("table1").style.visibility = "hidden";
}
</script>
<table border="0" width="510" id="table1" style="visibility:hidden;float:left;">
    <tr>
        <td width="100"></td>
        <td><img src="" style="width:100px;"><span>Her er der noget tekst</span></td>
        <td width="100"></td>
    </tr>
</table>
<table border="0" width="510" id="table2">
    <tr>
        <td>
        <p align="center"><map name="Map1">
        <area href="side.html" shape="polygon" coords="200, 50, 230, 250, 70, 220, 50" onmouseover="showText('id1');" onmouseout="hideText();">
        <area href="side2.html" shape="polygon" coords="230, 250, 170, 160, 200, 40" onmouseover="showText('id2');" onmouseout="hideText();">
        </map>
        <img border="0" src="pic.jpg" width="400" height="600" usemap="#Map1"></td>
    </tr>
</table>

-- bemærk, at jeg lige måtte lave lidt om, så tingene ikke flyttede sig, men det kan du jo selv pusle med !-)
Avatar billede newbie.dk Praktikant
15. marts 2008 - 11:20 #4
Hej Roenving.
Det ser rigtigt godt ud, super fedt. Takker.

Jeg har lige to spørgsmål.
1. Kan man i "id1":["small.jpg","Her er en forklarende tekst, der kan stå ved siden af billedet"] ændre på tekst-formatter? f.eks lave noget af teksten fed?
2. Kan man gøre teksten i <td><img style="width:100px;" align="left"><span>Her er der noget tekst bla bla bla bla</span></td> synlig fra start. Altså tænkter på noget i retning af "Før musen over billedet, bla bla..." Så den tekst er default når der ikke er mouseover?

Men i hvert fald endnu en gang tak, det er super sejt.





<script type="text/javascript">
var desc = {
  "id1":["small.jpg","Her er en forklarende tekst, der kan stå ved siden af billedet"],
  "id2":["small2.jpg","Her er en forklarende tekst II, der kan stå ved siden af billedet"]
}
function showText(id){
  var tab = document.getElementById("table1");
  tab.getElementsByTagName("img")[0].setAttribute("src",desc[id][0]);
  tab.getElementsByTagName("span")[0].firstChild.nodeValue = desc[id][1];
  tab.style.visibility = "visible";
}
function hideText(){
  document.getElementById("table1").style.visibility = "hidden";
}
</script>
</head>

<body>

<table border="0" width="510" height="96" id="table1" style="visibility:hidden;float:left; font-family:Verdana">
    <tr>
        <td width="100"></td>
        <td><img style="width:100px;" align="left"><span>Her er der noget tekst bla bla bla bla</span></td>
        <td width="100"></td>
    </tr>
</table>
<p><br>
&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="0" width="510" id="table2">
    <tr>
        <td>
        <p align="center"><map name="Map1">
        <area href="side1.html" shape="polygon" coords="206, 46, 229, 250, 320, 71" onmouseover="showText('id1');" onmouseout="hideText();">
        <area href="side2.html" shape="polygon" coords="228, 253, 171, 163, 206, 43" onmouseover="showText('id2');" onmouseout="hideText();">
        </map>
        <img border="0" src="pic.jpg" width="400" height="621" usemap="#Map1"></td>
    </tr>
</table>

</body>

Og så må du gerne ligge et svar.
Avatar billede roenving Novice
15. marts 2008 - 11:37 #5
1. Hrm, tjah, skal det laves korrekt, kræver det en masse mere kode, en der var ligeglad ville bruge .innerHTML i stedet for .firstChild.nodeValue ...

2. Ja det kan du sagtens, men så ville jeg benytte mig af et ekstra element, der starter med at have display:block; og har display:none; når noget andet vises, f.eks.

<script type="text/javascript">
var desc = {
  "id1":["small.jpg","Her er en forklarende tekst, der kan stå ved siden af billedet"],
  "id2":["small2.jpg","Her er en forklarende tekst II, der kan stå ved siden af billedet"]
}
function showText(id){
  var tab = document.getElementById("table1");
  tab.getElementsByTagName("img")[0].setAttribute("src",desc[id][0]);
  tab.getElementsByTagName("span")[0].firstChild.nodeValue = desc[id][1];
  tab.style.display = "block";
  document.getElementById("table0").style.display = "none";
}
function hideText(){
  document.getElementById("table1").style.display = "none";
  document.getElementById("table0").style.display = "block";
}
</script>
</head>

<body>

<table id="table0" style="border:none;width:510px;height:96px;display:block;float:left; font-family:Verdana, sans-serif;">
    <tr>
        <td width="100"></td>
        <td><img src="Et teaser-billede" style="width:100px;" align="left"><span>Før musen over billedet bla bla bla bla</span></td>
        <td width="100"></td>
    </tr>
</table>
<table id="table1" style="border:none;width:510px;height:96px;display:none;float:left; font-family:Verdana, sans-serif;">
    <tr>
        <td width="100"></td>
        <td><img style="width:100px;" align="left"><span>Her er der noget tekst bla bla bla bla</span></td>
        <td width="100"></td>
    </tr>
</table>

...

-- velbekomme '-)
Avatar billede newbie.dk Praktikant
15. marts 2008 - 11:43 #6
Mange tak.
Avatar billede newbie.dk Praktikant
15. marts 2008 - 11:50 #7
Der kommer lige et spørgsmål mere.
Når man køre siden, spørges der til sikkerheden, scripts og activeX-objekter. Kan man slippe af med denne uden at skulle tillade dette, altså så brugeren ikke bliver spurgt om dette.
Avatar billede roenving Novice
15. marts 2008 - 12:09 #8
Hvis du kører den lokalt, vil IE spørge, uploader du det til en server vil den ikke spørge ...

-- det er selvfølgelig klart, at ting, du selv har på din computer er voldsomt farligt, det der findes ude på det store web er lige så selvfølgeligt helt ufarligt ,-(

Men logikken er, at det du selv har på computeren ved du findes og kan svare ja til, ved du det ikke, bliver du voldsomt overrasket og skal selvfølgelig svare nej, da det så må være et ondsindet angreb !-)

-- og 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