Avatar billede spetersen Nybegynder
16. maj 2007 - 23:43 Der er 5 kommentarer og
1 løsning

preloadede images i forb. m. php included menu - vedligeholdelse

Jeg har et site hvor jeg laver en included menu v.hj. af php, men jeg har samtidig lavet mouseover på menuknapperne, så jeg preloader også de images der bruges til mouseover effekten.
Problemet er, at når menuen skal opdateres (hvis der skal f.eks. tilføjes en knap) så er det nu ikke kun den inkluderede fil til selve menutabellen der skal ændres - der skal også rettes i rækken af preloadede images...og den kode er ikke i en ekstern fil (og så er der jo ligesom ikke så meget fidus ved at lave menuen include, hvis man alligevel skal rette i alle sider for at ændre koden til de preloadede images...)

koden til den menu der bliver included ser sådan her ud:

<table width="200" cellspacing="0" cellpadding="0">
<tr>
<td style="padding-bottom:10px"><a href="index.php" onmouseover="MM_swapImage('menubtn_fors','','images/lite_menubtn_fors.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_fors.png" alt="Forside" name="menubtn_fors" width="200" height="20" border="0" id="menubtn_fors" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="musikere.php" onmouseover="MM_swapImage('menubtn_mus','','images/lite_menubtn_mus.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_mus.png" alt="Bands og musikere" name="menubtn_mus" width="200" height="20" border="0" id="menubtn_mus" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="diskoteker.php" onmouseover="MM_swapImage('menubtn_disk','','images/lite_menubtn_disk.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_disk.png" alt="Mobil diskotek" name="menubtn_disk" width="200" height="20" border="0" id="menubtn_disk" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="entertainment.php" onmouseover="MM_swapImage('menubtn_ent','','images/lite_menubtn_ent.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_ent.png" alt="Anden entertainment" name="menubtn_ent" width="200" height="20" border="0" id="menubtn_ent" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="book.php" onmouseover="MM_swapImage('menubtn_book','','images/lite_menubtn_book.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_book.png" alt="Booking - forespørgsel" name="menubtn_book" width="200" height="20" border="0" id="menubtn_book" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="om_mce.php" onmouseover="MM_swapImage('menubtn_om','','images/lite_menubtn_om.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_om.png" alt="Om MC Entertainment" name="menubtn_om" width="200" height="20" border="0" id="menubtn_om" /></a></td>
</tr>
<tr>
<td style="padding-bottom:10px"><a href="kontakt.php" onmouseover="MM_swapImage('menubtn_kont','','images/lite_menubtn_kont.png',1)" onmouseout="MM_swapImgRestore()"><img src="images/menubtn_kont.png" alt="Kontakt os" name="menubtn_kont" width="200" height="20" border="0" id="menubtn_kont" /></a></td>
</tr>
<tr>
<td height="200">&nbsp;</td>
</tr>
</table>

og de preloadede images laver jeg sådan:
<body onload="MM_preloadImages('images/lite_menubtn_fors.png','images/lite_menubtn_mus.png','images/lite_menubtn_disk.png','images/lite_menubtn_ent.png','images/lite_menubtn_om.png','images/lite_menubtn_kont.png','images/lite_menubtn_book.png')">

koden til en hel side ligger på http://www.pandoradesign.dk/include-php-js-problem.rtf

Det er vist det der populært sagt kaldes at skyde sig selv i foden - jeg forestiller mig man måske kunne lave flere includes eller lave javascriptet eksternt, jeg prøver lige js kategorien først - nogen der kan fikse den?

Susanne
Avatar billede spetersen Nybegynder
16. maj 2007 - 23:45 #1
rettelse:

og de preloadede images laver jeg sådan:

<body onload="MM_preloadImages('images/lite_menubtn_fors.png','images/lite_menubtn_mus.png','images/lite_menubtn_disk.png','images/lite_menubtn_ent.png','images/lite_menubtn_om.png','images/lite_menubtn_kont.png','images/lite_menubtn_book.png')">
Avatar billede spetersen Nybegynder
16. maj 2007 - 23:48 #2
sorry, det kniber med at indkopiere de lange linjer her på eksperten.dk, men hele koden kan som sagt ses på http://www.pandoradesign.dk/include-php-js-problem.rtf
Avatar billede roenving Novice
17. maj 2007 - 11:25 #3
Sæt linjen, der preloader ind i den fil, der også indeholder preload-koden, f.eks. sådan:

window.onload = function(){
  MM_preloadImages('images/lite_menubtn_fors.png', 'images/lite_menubtn_mus.png', 'images/lite_menubtn_disk.png', 'images/lite_menubtn_ent.png', 'images/lite_menubtn_om.png', 'images/lite_menubtn_kont.png', 'images/lite_menubtn_book.png');
}

-- og så fjerner du bare onload-tingen fra body-tagget:

<body>

-- og tricket ned at få lange linjer ind her på siden er at indsætte 'whitespace' ufarlige steder, her har jeg f.eks. gjort det med mellemrum efter kommaerne !-)
Avatar billede spetersen Nybegynder
17. maj 2007 - 15:09 #4
tak, hvis du lægger et svar klikker jeg
Avatar billede roenving Novice
17. maj 2007 - 15:13 #5
Velbekomme '-)
Avatar billede roenving Novice
17. maj 2007 - 17:31 #6
-- 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