Avatar billede nicolaselg Nybegynder
19. august 2001 - 17:00 Der er 5 kommentarer og
1 løsning

\"rollover\" trivia ;-)

jeg har et script som virker, men ikke helt som jeg gerne vil.

det drejer sig om et rolloverscript, hvor billederne bliver downloaded hver gang musen føres over billedet.

scriptet er et par år gammelt, så det er ikke så pænt kodet, men det kan da læses.

Hvad skal jeg gøre for at billederne ikke bliver downloaded hvre gang musen føres over, men bliver cachet i stedet?

http://www.std.dk/navigation/navigation.asp
Avatar billede crunch Nybegynder
19. august 2001 - 17:04 #1
<script language=\"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;
}





-- og når der skal laves en knap.:


<a href=\"#\" onClick=\"parent.links.location.href=\'link.asp?link=job\';parent.content.location.href=\'content.asp?subject=c1\'\"  onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage(\'Image2\',\'\',\'image/job-blank.gif\',1)\"><img name=\"Image2\" border=\"0\" src=\"image/job.gif\" width=\"50\" height=\"50\"></a>

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.0
  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 && document.getElementById) x=document.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>
Avatar billede crunch Nybegynder
19. august 2001 - 17:05 #2
ups. pasted forkert.



<script language=\"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.0
  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 && document.getElementById) x=document.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>







<a href=\"#\" onClick=\"parent.links.location.href=\'link.asp?link=job\';parent.content.location.href=\'content.asp?subject=c1\'\"  onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage(\'Image2\',\'\',\'image/job-blank.gif\',1)\"><img name=\"Image2\" border=\"0\" src=\"image/job.gif\" width=\"50\" height=\"50\"></a>



scriptet er fra dreamweaver så det bliver nok ikke meget pænere...
Avatar billede nicolaselg Nybegynder
19. august 2001 - 17:12 #3
tak for svaret, men jeg afviser det.

Jeg skal bruge noget der ikke roder over det hele.
/Nicolas
Avatar billede jakoba Nybegynder
19. august 2001 - 17:24 #4
billederne burde IKKE blive genhentet fra server hver gang. Efter første hent ligger de i cashe, og der er de de efterfølgende bør hentes.

Med asp er det nemt at komme til at sige \"alt der loades herfra skal have en cashetid på 0 sekunder. Der er nyttigt for .asp filerne der jo skal laves med sidste nye info hver gang, men det er tåbeligt for billederne der ikke ændrer sig.
Læg evt alle billeder i en mappe for sig selv og indstil så i din iis konsol at filer i den mappe gerne må cashes en dagstid.
Avatar billede nicolaselg Nybegynder
19. august 2001 - 17:28 #5
Hmmm...

Det var vidst der hunden lå...

- tak
Avatar billede jakoba Nybegynder
19. august 2001 - 17:30 #6
Hvis ovenstående er iorden mangler du blot at preloade aktiv-versionen af alle billederne så de er klar når musen kommer derned og laver mouseover.


var preI = new Array(
  \'pic1a.gif\',  \'pic2a.gif\',
  \'pic3a.gif\',  \'pic4a.gif\',
  \' ... ,                            // altså såmange billeder du vil
  \'picNa.gif\'  );

for (var i=0; preI.length>i; i++ ) {
    temp = preI[i];
    preI[i] = new Image();
    preI[i].src = temp;
};

mvh JakobA
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