Avatar billede Slettet bruger
08. december 2007 - 22:49 Der er 8 kommentarer og
1 løsning

Image Rollover problem

Hey

Jeg har følgende kode som, iflg. mig, burde få min knap1.gif til at skifte til knap2.gif når man mouseover på den. Men af en grund jeg ikke kender gør den det ikke :)

Kan nogen hjælpe?
Jeg er ikke nogen haj til Javascript, men mener jeg normalt kan redigere i JavaScript.
Jeg skal have mouseover på 4 knapper i alt, så hvis Java koden skal laves om, vil jeg sætte pris på et praj :)

På forhånd tak!

I HTML dokument:

<SCRIPT TYPE="text/javascript" SRC="rollover.js"></SCRIPT>

I .JS dokument:

<script type="text/javascript">
var revert = new Array();
var inames = new Array('kompetencer', 'referencer' 'ommig' 'kontakt'');

// Preload
if (document.images) {
  var flipped = new Array();
  for(i=0; i< inames.length; i++) {
    flipped[i] = new Image();
    flipped[i].src = "images/"+inames[i]+"2.gif";
  }
}

function over(num) {
  if(document.images) {
    revert[num] = document.images[inames[num]].src;
    document.images[inames[num]].src = flipped[num].src;
  }
}
function out(num) {
  if(document.images) document.images[inames[num]].src = revert[num];
}
</script>

I HTML dokument:

    </tr>
    <tr>
        <td colspan="2">
            <a href="#" onMouseOver="over(0)" onMouseOut="out(0)"><img src="images/kompetencer1.gif" width="143" height="34" border="0" name="kompetencer"></a></td>
    </tr>
Avatar billede w13 Novice
09. december 2007 - 12:42 #1
Ret til:

I .JS dokument:

var revert=new Array();
var inames=new Array('kompetencer','referencer','ommig','kontakt');

// Preload
  var flipped=new Array();
  for(i=0;i<inames.length;i++){
    flipped[i]=new Image();
    flipped[i].setAttribute("src","images/"+inames[i]+"2.gif");
  }

function over(obj,num){
  revert[num]=obj.getAttribute("src");
  obj.setAttribute("src",flipped[num].getAttribute("src"));
}
function out(obj,num){
  obj.setAttribute("src",revert[num]);
}

I HTML dokument:

    </tr>
    <tr>
        <td colspan="2">
            <img onmouseover="over(this,0)" onmouseout="out(this,0)" src="images/kompetencer1.gif" width="143" height="34" border="0" name="kompetencer"></td>
    </tr>
Avatar billede w13 Novice
09. december 2007 - 12:45 #2
Nu har jeg optimeret din kode og bl.a. undgået brugen af document.images, som kun virker i IE. Men din fejl var vist bare i linjen:
var inames = new Array('kompetencer', 'referencer' 'ommig' 'kontakt'');
som mangler kommaer og har noget rod ang. apostrof der til sidst.
Avatar billede Slettet bruger
09. december 2007 - 22:52 #3
Hey beklager det sene svar, travl weekend.
Jeg ved ikke hvad jeg gør forkert, men det vil ikke virke.
Har prøvet i Safari, IE, Firefox og endda Opera, men der sker intet når jeg mouseover.

Jeg har præcis den kode du har indsat, enten er der noget galt med min mappestruktur eller sådan noget.
Jeg har mine billeder i images, hvor kompetencer1.gif er standard og kompetencer2.gif er den som skal mouseover.
Min rollover.js ligger ved siden af min side lige nu, er mine links rigtige?
Jeg skal desuden have billederne som links så måske mouseover skal ind i <a> ?
Avatar billede w13 Novice
09. december 2007 - 23:12 #4
Prøv at rette:
flipped[i].setAttribute("src","images/"+inames[i]+"2.gif");
til:
flipped[i].setAttribute("src","/images/"+inames[i]+"2.gif");

Ang. links, så læg bare en <a> uden om billedet. onmouseover skal stadig stå direkte på billedet.

Ellers må du smide et link til siden, så jeg kan se det.
Avatar billede Slettet bruger
10. december 2007 - 10:05 #5
Avatar billede Slettet bruger
10. december 2007 - 14:13 #7
nå skidt med det, en god ven fandt lige en script til mig :)

hvis andre får problemet; http://jehiah.com/archive/simple-swap

:) læg et svar, jeg giver gerne point for din tid :)
Avatar billede w13 Novice
10. december 2007 - 16:37 #8
Okidoke =)
Avatar billede w13 Novice
10. december 2007 - 17:38 #9
Mange 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