Avatar billede woowii Nybegynder
05. juli 2005 - 03:04 Der er 5 kommentarer og
1 løsning

Billedeskift i tabel ved mouseover

Hej,

Egentlig et ganske simpelt spørgsmål (vil jeg tro), men jeg kan bare ikke få det til at virke. Jeg vil gerne have at i når man kører musen over cellen i tabellen skifter billedet - jeg kan godt få det til at virke med IE, men opera ignorerer det. Her er den kode jeg har:

<td width=70 height=20 background="Images/menu.jpg" onmouseover="background='Images/menu_over.jpg'" onmouseout="background='Images/menu.jpg'">tekst</td>

Nogle idéer?
Avatar billede fennec Nybegynder
05. juli 2005 - 08:12 #1
Prøv med:

<td width=70 height=20 background="Images/menu.jpg" onmouseover="this.background='Images/menu_over.jpg'" onmouseout="this.background='Images/menu.jpg'">tekst</td>
Avatar billede fennec Nybegynder
05. juli 2005 - 08:20 #2
Hvad er det jeg siger. background attributten er ikke tilladt efter HTML 4.01 standarten. Brug style i stedet.

<td style="background-image:url(Images/menu.jpg)" onmouseover="this.style.backgroundImage='url(Images/menu_over.jpg)';" onmouseout="this.style.backgroundImage='url(Images/menu.jpg)';">tekst</td>
Avatar billede miss-g Seniormester
05. juli 2005 - 12:18 #3
Eller den lange version (som Dreamweaver laver):

------------------

<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

--------------------

<body onLoad="MM_preloadImages('images/menu/buttom-home-h.gif')">
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/menu/buttom-home-h.gif',1)"><img src="images/menu/buttom-home.gif" alt="" name="Knap1" width="147" height="26" border="0"></a>
Avatar billede woowii Nybegynder
05. juli 2005 - 12:53 #4
Virker fantastisk, fennec - mange tak for hjælpen. :)

Undskyld, miss-g - din kode virker garenteret også, men fennec's er noget lettere. ;)
Avatar billede miss-g Seniormester
05. juli 2005 - 12:55 #5
Enig woowii ;-)
Avatar billede fennec Nybegynder
05. juli 2005 - 13:14 #6
Forskellen (og fordelen) ved miss-g's kode er, at der er en preloader indbygget. Det betyder at billederne skifter hurtigere, hvis det er størrere filer, da alle billeder bliver hentet når siden loader. Ellers bliver de først hentet når brugerne holder musen over billed.

Du kan også finde andre preload scripts her på E, hvis det skulle have interesse.
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