Avatar billede zybe Nybegynder
24. maj 2007 - 14:12 Der er 5 kommentarer og
1 løsning

Swap text - med tid udløb

Hej

Jeg har et billede med et imagemap. Ved mus over map, skal der vises en tekst i et div. Når musen fjernes fra map skal teksten blive stående i f.eks. 5 sek og derefter fjernes igen.

Jeg har lavet lidt i dreamweaver, men kan ikke få tids udløb på??

Nogen der kan hjælpe??

Tak

Her er min kode fra DW:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style>
#test{
    width: 300px;
    position: absolute;
    height: 146px;
}
</style>
<script type="text/JavaScript">
<!--
setTimeout("function()", 100);
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}
//-->
</script>
</head>

<body>
<img src="../../../All Users/Dokumenter/Billeder/Billedeksempler/Bjergtoppe.jpg" width="658" height="600" border="0" usemap="#Map" />
<map name="Map" id="Map">
  <area shape="rect" coords="104,357,194,414" href="#" />
  <area shape="rect" coords="560,-2,664,67" href="#" onmouseover="MM_setTextOfLayer('test','','højre')"/>
  <area shape="rect" coords="-1,4,121,88" href="#" onmouseover="MM_setTextOfLayer('test','','venstre')" />
</map>
<div id="test"></div>
</body>
</html>
Avatar billede olebole Juniormester
24. maj 2007 - 14:38 #1
<ole>

<area shape="rect" coords="560,-2,664,67" href="#" onmouseover="setText('test','højre')" onmouseout="resetText">

- og div'et:
    <div id="test">&nbsp;</div>

- og funktionen:
function setText(objID, sText) {
    var o = document.getElementById(objID);
    o.setAttribute("oldText", o.firstChild.nodeValue);
    o.firstChild.nodeValue = sText;
}
function resetText(objID) {
    var o = document.getElementById(objID);
    setTimeout(function(){o.firstChild.nodeValue=o.getAttribute("oldText")}, 5000)
}

/mvh
</bole>
Avatar billede olebole Juniormester
24. maj 2007 - 14:40 #2
- selvfølgelig:
    onmouseout="resetText()"  ;o)

DreamWeaver's funktioner kan overhovedet ikke bruges sammen med XHTML. Ikke at det betyder så meget, når du skriver en XHTML-version, der altid tolkes som HTML (aldrig som XHTML!) ... men alligevel  ;o)
Avatar billede zybe Nybegynder
25. maj 2007 - 09:41 #3
hmm... det virker ikke rigtigt...


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>

<script type="text/JavaScript">
function setText(objID, sText) {
    var o = document.getElementById(objID);
    o.setAttribute("oldText", o.firstChild.nodeValue);
    o.firstChild.nodeValue = sText;
}
function resetText(objID) {
    var o = document.getElementById(objID);
    setTimeout(function(){o.firstChild.nodeValue=o.getAttribute("oldText")}, 5000)
}
</script>

</head>

<body>
<div id="test">&nbsp;</div>
<img src="test.jpg" width="100" height="100" border="0" usemap="#Map" />
<map name="Map" id="Map"><area shape="circle" coords="56,54,27" href="#" onmouseover="resetText('test','højre')" onmouseout="resetText()"></map>
</body>
</html>


Har jeg gjort noget forkert
Avatar billede olebole Juniormester
25. maj 2007 - 14:38 #4
Vi har begge lavet fejl. Jeg skrev koden ud af hovedet uden at teste (manglede at medsende ID'et fra 'resetText') - og du fik kaldt 'resetText' på både onmouseover og -out  =)

Sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<script type="text/JavaScript">
function setText(objID, sText) {
    var o = document.getElementById(objID);
    o.setAttribute("oldText", o.firstChild.nodeValue);
    o.firstChild.nodeValue = sText;
}
function resetText(objID) {
    var o = document.getElementById(objID);
    setTimeout(function(){o.firstChild.nodeValue=o.getAttribute("oldText")}, 5000)
}
</script>

</head>

<body>
<div id="test">&nbsp;</div>
<img src="test.jpg" width="100" height="100" border="0" usemap="#Map">
<map name="Map" id="Map"><area shape="circle" coords="56,54,27" href="#" onmouseover="setText('test','højre')" onmouseout="resetText('test')"></map>
</body>
</html>
Avatar billede zybe Nybegynder
12. november 2007 - 11:09 #5
laver du et svar?
Avatar billede zybe Nybegynder
31. marts 2008 - 13:04 #6
så lukker jeg
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