Avatar billede nyst Nybegynder
26. november 2003 - 14:03 Der er 13 kommentarer og
1 løsning

navigation reollover med frames

Hej,
jeg har en side med frames, hvor navigationen ligger i en frames og åbner så siderne i en anden frames = main.

Jeg kan ikke få mouseover til at virke som jeg gerne vil have, nemlig at der er mouseover på et lille ikon på alle links, altså de samme billeder bruges til alle links.

Samt at når jeg skifter side skal den forrige vende tilbage til 'normal' som alle andre links.

Mit kodeeksempel består bar her af 3 links, men omfatter flere end det:

-----------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title></title>

<base target="main">

<link rel="stylesheet" href="css.css"    type="text/css">

<script type="text/javascript">
<!--

function newImage(arg) {
    if (document.images) {
        rslt = new Image();
        rslt.src = arg;
        return rslt;
    }
}

function changeImagesArray(array) {
    if (document.images && (preloadFlag == true)) {
        for (var i=0; i<array.length; i+=2) {
            document[array[i]].src = array[i+1];
        }
    }
}

function changeImages() {
    changeImagesArray(changeImages.arguments);
}

function toggleImages() {
    for (var i=0; i<toggleImages.arguments.length; i+=2) {
        if (selected == toggleImages.arguments[i])      changeImagesArray(toggleImages.arguments[i+1]);
    }
}

var selected = '';
var preloadFlag = false;
function preloadImages() {
    if (document.images) {
        knap_over = newImage("images/knap-over.gif");
        knap_down = newImage("images/knap-down.gif");
        knap_sel = newImage("images/knap-sel.gif");
        preloadFlag = true;
    }
}

// -->
</script>

</head>

<body background="images/bg_nav.gif" onload="preloadImages();">

<a href="indhold.html" target="main" class="ww"
    onmouseover="toggleImages('', new Array('knap', 'images/knap-over.gif')); return true;"
    onmouseout="toggleImages('knap', new Array('knap', 'images/knap-sel.gif'), '', new Array('knap', 'images/knap.gif')); return true;"
    onmousedown="toggleImages('', new Array('knap', 'images/knap-down.gif')); return true;"
    onmouseup="selected='knap'; changeImages('knap', 'images/knap-sel.gif'); return true;">
    <img name="knap" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Forside</a><br><br>
       
<a href="download.html" target="main" class="ww"
    onmouseover="toggleImages('', new Array('knap', 'images/knap-over.gif')); return true;"
    onmouseout="toggleImages('knap', new Array('knap', 'images/knap-sel.gif'), '', new Array('knap', 'images/knap.gif')); return true;"
    onmousedown="toggleImages('', new Array('knap', 'images/knap-down.gif')); return true;"
    onmouseup="selected='knap'; changeImages('knap', 'images/knap-sel.gif'); return true;">
    <img name="knap" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Downloads</a><br><br>
   
<a href="links.html" target="main" class="ww"
    onmouseover="toggleImages('', new Array('knap', 'images/knap-over.gif')); return true;"
    onmouseout="toggleImages('knap', new Array('knap', 'images/knap-sel.gif'), '', new Array('knap', 'images/knap.gif')); return true;"
    onmousedown="toggleImages('', new Array('knap', 'images/knap-down.gif')); return true;"
    onmouseup="selected='knap'; changeImages('knap', 'images/knap-sel.gif'); return true;">
    <img name="knap" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Links</a><br><br>
       
</body>
</html>

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

Kan nogle hjælpe med dette???

:-) nyst
Avatar billede skovenborg Nybegynder
26. november 2003 - 15:26 #1
noget i den her stil???
Avatar billede skovenborg Nybegynder
26. november 2003 - 15:26 #2
Avatar billede skovenborg Nybegynder
26. november 2003 - 15:29 #3
i hvert fald skal du nok kalde din preloadImages før for at det giver lidt mere mening (men du behøver ikke).

For at gøre det skal du kalde din funktion efter den er lavet
function preloadImages() {
.....
} //End of preloadImages

preloadImages();

og så fjerne din onload i body'en
Avatar billede nyst Nybegynder
26. november 2003 - 15:52 #4
Ja, noget i den stil på din side, men bare i html og ikke php, det har jeg ikke på siten...

:-) nyst
Avatar billede skovenborg Nybegynder
26. november 2003 - 16:16 #5
der er skam heller ikke noget php i det - jeg har bare kaldt siden for .php, men den kunne ligeså godt hedde .htm ;-)
Avatar billede nyst Nybegynder
26. november 2003 - 17:06 #6
Hej igen,
det virker jo bare helt fint, men hvis jeg nu ville have en mouseoverknap der havde anden farve, kan det så lade sig gøre???

Stadig i frames, så navigationen ligger i egen fil og ikke udskiftes.

:-)
Avatar billede skovenborg Nybegynder
26. november 2003 - 17:08 #7
hvis jeg må have lov at lave en del om på dit script (altså jeg faktisk bruger en modificeret udgave af min egen), så skal det se sådan ud:
<script type="text/javascript">
<!--
var activeImg; //Contains the active picture.
// A short extra function for preloading the pictures
function preloadImages()
{
    img1 = new Image();img1.src='images/knap-over.gif';
    img2 = new Image();img2.src='images/knap-down.gif';
    img3 = new Image();img3.src='images/knap-sel.gif';
} // END preloadImages
preloadImages(); // Call of function

function changeImg(img,evnt)
{
        if (activeImg != document.images[img]) {
        img = document.images[img];
        if (evnt.type == "mouseup")
        {
            if (activeImg) activeImg.src = "images/knap.gif";
                activeImg = img;
            img.src = "images/knap-sel.gif";
        }
        else if (evnt.type == "mousedown") img.src = "images/knap-down.gif";
        else if (evnt.type == "mouseover") img.src = "images/knap-over.gif";
    else if (evnt.type == "mouseout") img.src = "images/knap.gif";
        else;
        }
}
-->
</script>


<body background="images/bg_nav.gif">

<a href="indhold.html" target="main" class="ww"
    onmouseover="changeImg('knap1',event);"
    onmouseout="changeImg('knap1',event);"
    onmousedown="changeImg('knap1',event);"
    onmouseup="changeImg('knap1',event);">
    <img name="knap1" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Forside</a><br><br>

<a href="downloads.html" target="main" class="ww"
    onmouseover="changeImg('knap2',event);"
    onmouseout="changeImg('knap2',event);"
    onmousedown="changeImg('knap2',event);"
    onmouseup="changeImg('knap2',event);">
    <img name="knap2" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Downloads</a><br><br>

<a href="links.html" target="main" class="ww"
    onmouseover="changeImg('knap3',event);"
    onmouseout="changeImg('knap3',event);"
    onmousedown="changeImg('knap3',event);"
    onmouseup="changeImg('knap3',event);">
    <img name="knap3" src="images/knap.gif" width="20" height="20" border="0" alt="" /> Links</a><br><br>
</body>

HÅber det virker :-)
Avatar billede nyst Nybegynder
06. februar 2004 - 12:44 #8
Hej igen og undskyld ventetiden.

Den sidste virker helt fint - så 1000 tak for den.

Den første - altså den på din egen side - der vil knappen ikke ændre sig når man holder musen over teksten - kan du se hvor fejlen ligger???
Avatar billede skovenborg Nybegynder
14. februar 2004 - 16:42 #9
jeg undskylder også ventetiden ;-)

Den jeg har lavet på min egen side er jo udelukkende til billeder - tror det er derfor det ikke virker... Nu kan jeg heller ikke lige huske så meget af dette spørgsmål, men jeg synes blot at du skal bruge det sidste jeg har lavet hvis det virker efter hensigten.
Avatar billede nyst Nybegynder
04. marts 2004 - 11:37 #10
Hej igen,

det virker altså helt fint.

Tak for hjælpen - smid lige så du kan få points
Avatar billede nyst Nybegynder
04. marts 2004 - 11:40 #11
hov hvis man nu vil have den første side til at være 'tændt' hvad gør man så - kan man bare i sidste linie vælge knap-sel.gif i stedet for knap.gif?
Avatar billede nyst Nybegynder
04. marts 2004 - 11:43 #12
næ det kunne man ikke, så er den 'tændt' hele tiden
Avatar billede skovenborg Nybegynder
04. marts 2004 - 17:43 #13
du kan først og fremmest lave om på src'en:
<a href="indhold.html" target="main" class="ww"
    onmouseover="changeImg('knap1',event);"
    onmouseout="changeImg('knap1',event);"
    onmousedown="changeImg('knap1',event);"
    onmouseup="changeImg('knap1',event);">
    <img name="knap1" src="images/knap-sel.gif" width="20" height="20" border="0" alt="" /> Forside</a><br><br>

Men så skal du samtidig lige sige at dette billede er det aktive:
<img name="knap1" src="images/knap-sel.gif" width="20" height="20" border="0" alt="" onload="activeImg = this;" />

Hvis jeg har forstået dig ret er det sådan noget du søger - har dog ikke lige testet det ;-)
Her er også et svar nu når jeg er i gang :-)
Avatar billede nyst Nybegynder
04. marts 2004 - 18:17 #14
det duede nu ikke, det er fint tilstart men laver kludder hvis den vælges senere, men eller takker jeg for din hjælp
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