Avatar billede collina Praktikant
26. september 2008 - 14:26 Der er 11 kommentarer

Menu der skal skifte billede

Jeg har et website, hvor der er en menu se:

www.annemarieclement.dk

Menu punkterne virker ikke som tænkt, da Velkommen altid er "aktiv". Menuen er opbygget af to billeder billede1.jpg og billede1_aktiv.jpg, som der skiftes mellem, når musemarkøren er over billedet.

Menuen ligger i sin egen fil adskilt fra de enkelte sider og har følgende indhold:

<div id="border">
<div id="namebox"><span></span></div>
<div id="velkommen_menu"><a href="index.shtml"><img src="slice/menu_velkommen_aktiv.gif" name="image1" border="0" onMouseOver="SwapImage1()" onMouseOut="SwapImage1Back()" ></a></div>
<div id="profil_menu"><a href="profil.shtml"><img src="slice/menu_profil-kopi.gif" name="image2" border="0" onMouseOver="SwapImage2()" onMouseOut="SwapImage2Back()"></a></div>
<div id="kurser_menu"><a href="kurser.shtml"><img src="slice/menu_kurserforedrag-kopi.gif" name="image3" border="0" onMouseOver="SwapImage3()" onMouseOut="SwapImage3Back()"></a></div>
<div id="klinik_menu"><a href="klinik.shtml"><img src="slice/menu_klinik-kopi.gif" name="image4" border="0" onMouseOver="SwapImage4()" onMouseOut="SwapImage4Back()"></a></div>
<div id="inspiration_menu"><a href="inspiration.shtml"><img src="slice/menu_inspiration-kopi.gif" name="image5" border="0" onMouseOver="SwapImage5()" onMouseOut="SwapImage5Back()"></a></div>
<div id="kontakt_menu"><a href="kontakt.shtml"><img src="slice/menu_kontakt-kopi.gif" name="image6" border="0" onMouseOver="SwapImage6()" onMouseOut="SwapImage6Back()"></a></div>
<div id="terapi_menu"><a href="terapi.shtml"><img src="slice/menu_terapi-kopi.gif" name="image7" border="0" onMouseOver="SwapImage7()" onMouseOut="SwapImage7Back()"></a></div>
</div>

jeg tænker at løsningen er at tjekke på hvilken side, brugeren har valgt og lave en if...else i menu filen. Men hvordan gør jeg det eller er der en bedre løsning?

Jeg foreetrækker at have menuen adskilt fra siderne, så den er letter et rette i uden at skulle rette i koden for alle siderne, eks. hvis der kommer et nyt menupunkt.
Avatar billede w13 Novice
26. september 2008 - 15:11 #1
Du må nok teste på sidens adresse og så derudfra sætte et af punkterne til at være aktivt.
Avatar billede w13 Novice
26. september 2008 - 15:11 #2
F.eks. med en if/else, ja, men endnu bedre med en case (switch).
Avatar billede collina Praktikant
26. september 2008 - 15:40 #3
Hvordan gøres det? document.page?
Avatar billede w13 Novice
26. september 2008 - 17:07 #4
window.location.href vil give dig url-adressen. Og du kan teste for indhold med indexOf("tekst")

F.eks.:

if ( window.location.href.indexOf("/adresse.htm") > -1 ){
  alert("Du er på adresse.htm!");
}
Avatar billede collina Praktikant
26. september 2008 - 19:10 #5
jeg kan vel også sætte den til at være:

if ( window.location.href.indexOf("/adresse.htm") == "kontakt.html")

ikke?
Avatar billede w13 Novice
26. september 2008 - 20:18 #6
Nej, indexOf("/adresse.htm") vil ikke kunne returnere "kontakt.html". =)
Avatar billede collina Praktikant
26. september 2008 - 20:24 #7
Nej selvfølgelig ikke, men hvad hedder den så? window.location.href.name?
Avatar billede roenving Novice
27. september 2008 - 11:36 #8
-- er alle dine menupunkter forskelligt stylet, jeg forstår ikke, at du har behov for alle disse divs ?-)

-- og grundlæggende har du vel forskellige sider, som serveren serverer, så du kan bare sætte en speciel klasse i dit serverside script !-)

-- og andre ting i din kode tyder på uhensigtsmæssigheder, så en oprydning af den samlede kode ser ud til at være nødvendig ...

-- prøv at vise din js- og css-kode her !o]
Avatar billede collina Praktikant
27. september 2008 - 20:49 #9
Her er js:

#
<!-- This script and many more are available free online at -->
#
<!-- The JavaScript Source!! http://javascript.internet.com -->
#
<!-- Created by: Joshua Bollman : http://www.freewebs.com/socomnavysealsfreak/ -->
#

#

#
function SwapImage1() {
#
document.image1.src="slice/menu_velkommen_aktiv.gif"
#
}
#
function SwapImage1Back() {
#
document.image1.src="slice/menu_velkommen.gif"
#
}
#

#
function SwapImage2() {
#
document.image2.src="slice/menu_profil_aktiv-kopi.gif"
#
}
#
function SwapImage2Back() {
#
document.image2.src="slice/menu_profil-kopi.gif"
#
}
#

#
function SwapImage3() {
#
document.image3.src="slice/menu_kurserforedrag_aktiv-kopi.gif"
#
}
#
function SwapImage3Back() {
#
document.image3.src="slice/menu_kurserforedrag-kopi.gif"
#
}
#

#
function SwapImage4() {
#
document.image4.src="slice/menu_klinik_aktiv-kopi.gif"
#
}
#
function SwapImage4Back() {
#
document.image4.src="slice/menu_klinik-kopi.gif"
#
}
#

#
function SwapImage5() {
#
document.image5.src="slice/menu_inspiration_aktiv-kopi.gif"
#
}
#
function SwapImage5Back() {
#
document.image5.src="slice/menu_inspiration-kopi.gif"
#
}
#

#
function SwapImage6() {
#
document.image6.src="slice/menu_kontakt_aktiv-kopi.gif"
#
}
#
function SwapImage6Back() {
#
document.image6.src="slice/menu_kontakt-kopi.gif"
#
}
#

#
function SwapImage7() {
#
document.image7.src="slice/menu_terapi_aktiv-kopi.gif"
#
}
#
function SwapImage7Back() {
#
document.image7.src="slice/menu_terapi-kopi.gif"
#
}

og CSS:

#
body {
#
background-color: #fdfcf6;
#
margin-left: 100px;
#
margin-top: 30px;
#
padding: 0;
#
font-family: Arial, Sans-Serif;
#
}
#

#

#
a:link {
#
font-weight: bold;
#
text-decoration: none;
#
color: #5A3D1E;
#
}
#
a:visited, a:active {
#
font-weight: bold;
#
text-decoration: none;
#
color: #5A3D1E;
#
}
#
a:hover {
#
text-decoration: none;
#
color: #E1BA9F;
#
}
#

#
/* specific divs */
#

#
#namebox {
#
background: url(slice/logo-kopi.gif) no-repeat;
#
position: absolute;
#
top: 10px;
#
left: 100px;
#
width: 327px;
#
height: 129px;
#
z-index: 1;
#
}
#

#
#banner {
#
/* background: url(slice/billede_inspiration-kopi.gif) no-repeat; */
#
position: absolute;
#
top: 140px;
#
left: 100px;
#
width: 898px;
#
height: 129px;
#
z-index: 1;
#
}
#
#
#billede_annemarie {
#
/* background: url(slice/annemarie2.gif) no-repeat; */
#
position: absolute;
#
top: 400px;
#
left: 695px;
#
width: 200px;
#
height: 300px;
#
z-index: 1;
#
}
#
#
#velkommen_menu {
#
background: url(slice/menu_velkommen.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 100px;
#
width: 50px;
#
height: 42px;
#
z-index: 1;
#
}
#
#
#terapi_menu {
#
background: url(slice/menu_terapi-kopi.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 217px;
#
width: 50px;
#
height: 42px;
#
z-index: 1;
#
}
#
#
#profil_menu {
#
background: url(slice/menu_profil-kopi.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 491px;
#
width: 49px;
#
height: 42px;
#
z-index: 1;
#
}
#
#
#klinik_menu {
#
background: url(slice/menu_klinik-kopi.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 297px;
#
width: 47px;
#
height: 42px;
#
z-index: 1;
#
}
#
#
#inspiration_menu {
#
background: url(slice/menu_inspiration-kopi.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 374px;
#
width: 87px;
#
height: 42px;
#
z-index: 1;
#
}
#
#
#kontakt_menu {
#
background: url(slice/menu_kontakt-kopi.gif) no-repeat;
#
position: absolute;
#
top: 270px;
#
left: 570px;
#
width: 66px;
#
height: 42px;
#
z-index: 1;
#
}
#

#
#pageHeader h1 {
#
margin-top: 320px;
#
}
#

#
.textbox p {
#
position: absolute;
#
margin-top: 320px;
#
height: 500px;
#
width: 450px;
#
line-height: 18pt;
#
color: #5A3D1E;
#
font-size: 12px;
#
float:left;
#
}
#

#
.newsbox p {
#
position: absolute;
#
margin-top: 450px;
#
margin-left: 588px;
#
height: 110px;
#
width: 280px;
#
padding: 20px 15px 20px 15px;
#
line-height: 12pt;
#
background-color: #C8E7EF;
#
color: #5A3D1E;
#
font-size: 12px;
#
}
#

#

#
#linklist {
#
position: absolute;
#
margin-left: 698px;
#
margin-top: 320px;
#
height: 200px;
#
width: 200px;
#
font-size: 11px;
#
line-height: 11pt;
#
color: #5A3D1E;
#
}
#

#
span.light {
#
font-weight: lighter;
#
#
}
Avatar billede collina Praktikant
27. september 2008 - 20:50 #10
jeg forstår ikke helt din kommentar omkring server som serverer sider. Jeg er med på at der er flere div end nødvendigt.

Forstår du hvad jeg vil med menu punkterne?
Avatar billede roenving Novice
28. september 2008 - 05:51 #11
Du behøver kun een SwapImage-funktion, men det er blevet sværere at lave den, fordi en del af dine billeder hedder noget -kopi ...

function SwapImage(pic){
  if(pic.src.indexOf("_aktiv")>-1)
    pic.src = pic.src.replace(/_aktiv/,"");
  else if(pic.src.indexOf("-kopi")>-1)
    pic.src = pic.src.replace(/-kopi/, "_aktiv-kopi");
  else
    pic.src = pic.src.replace(/\.gif/, "_aktiv.gif");
}

-- og så kalder du den på billederne med:

<a href="index.shtml"><img src="slice/menu_velkommen_aktiv.gif" name="image1" border="0" onmouseover="SwapImage(this);" onmouseout="SwapImage(this);"></a>

-- altså præcis den samme kode uanset billede og event ...

-- css-delen vil jeg vente med at prøve at overskue (eller måske kommer der lige en anden forbi !-)
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