Avatar billede overclockdk Nybegynder
20. januar 2006 - 08:47 Der er 8 kommentarer og
1 løsning

menu position

hejsa jeg faldt over en java menu som jeg smed ind på overclock.dk men den er godt nok en drillepind,, efter megen kamp fik jeg den til virke på alle undersider... men problemet er at den ikke kommer der hvor jeg "højer" klikker. er der en der kan ændre den så den kommer der hvor du højre-klikker også hvis man højerklikker i bunden eks. ?

herunder kommer selve java koden:

#######################################
function ShowMenu() {
   
    if(    document.all.Layer1.style.visibility == "hidden") {
        document.all.Layer1.style.top = event.clientY-10;
        document.all.Layer1.style.left = event.clientX-10;
        document.all.Layer1.style.visibility = "visible";
        return false;
    }
    else {
        if((event.clientX >= document.all.Layer1.style.left && event.clientX <= (document.all.Layer1.style.right + document.all.Layer1.style.width)) && (event.clientY >= document.all.Layer1.style.top && event.clientY <= (document.all.Layer1.style.top + document.all.Layer1.style.height))) {
            return false;
        }
        else {
            HideMenu();
            return false;
        }
    }
}

function HideMenu() {
    document.all.Layer1.style.visibility = "hidden";
}

function xGo(Num) {
    if(Num == 1) {
        window.open("./calllog.asp?action=New");
    }
    else if(Num == 2) {
                window.open("./calllog.asp?action=Lookup");
    }
    else if(Num == 3) {
                window.open("./calllog.asp?action=MyMsg");
    }
    else if(Num == 4) {
                window.open("./inputprofile.htm");
    }
    else if(Num == 5) {
                window.open("./openprofile.htm");
    }
    else if(Num == 6) {
                window.open("./orderform.asp?action=New");
    }
    else if(Num == 7) {
                window.open("./openorder.htm");
    }
    else if(Num == 8) {
                window.open("./orderform.asp");
    }
    else if(Num == 9) {
                window.open("./index.asp");
    }

}
#################################

Her er den kode der skal indsættes på hjemmesiden:

################################
<HTML>
<HEAD>

<script language='JavaScript' src='http://www.overclock.dk/popupmenu.js'></script>


</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<!--------- Begin Pop Up Menu --------->
<div id="Layer1" style="position:absolute; left:692px; top:278px; width:36px; height:26px; z-index:1; visibility=hidden"><img src="http://www.overclock.dk/ocmenu.gif" width="184" height="150" usemap="#MENU" border=0></div>
<map name="MENU">
  <area name="temp" coords="119,14,166,31" href="http://www.overclock.dk/news.php" target="_self">
  <area name="temp" coords="137,135,181,145" href="java script:window.close(); HideMenu();">
  <area name="temp" coords="128,57,178,71" href="forum/index.php" target="_self">
  <area name="temp" coords="125,78,180,93" href="java script:window.history.go(); HideMenu();">
  <area shape="rect" coords="123,35,168,51" href="http://www.overclock.dk/articles.php" target="_self">
  <area shape="rect" coords="125,97,180,113" href="http://www.overclock.dk/downloads.php" target="_self">
</map>
<script language='javascript'>
document.oncontextmenu = ShowMenu;
document.body.onclick = HideMenu;
</script>
<!--------- End  Pop Up Menu --------->
#####################################



Nogen der kan hjælpe mig ?
Avatar billede softspot Forsker
20. januar 2006 - 09:56 #1
Du er opmærksom på at oncontextmenu kun fungerer i IE, ikk'?
Avatar billede softspot Forsker
20. januar 2006 - 11:01 #2
Men da du nu bruger IE-only, så kan du jo hente scrollpositionen via document.body.scrollLeft og document.body.scrollTop (hvis du ikke benytter en DOCTYPE som i ovenstående kode, eller document.body.parentNode.scrollLeft og document.body.parentNode.scrollTop hvis du skulle vælge at benytte DOCTYPE - hvilket er anbefalelsesværdigt).

Din show-funktion kunne så rettes som følger (utestet herfra):

function ShowMenu() {
   
    if(    document.all.Layer1.style.visibility == "hidden") {
        document.all.Layer1.style.top = event.clientY+document.body.scrollTop-10;
        document.all.Layer1.style.left = event.clientX+document.body.scrollLeft-10;
        document.all.Layer1.style.visibility = "visible";
        return false;
    }
    else {
        if((event.clientX >= document.all.Layer1.style.left && event.clientX <= (document.all.Layer1.style.right + document.all.Layer1.style.width)) && (event.clientY >= document.all.Layer1.style.top && event.clientY <= (document.all.Layer1.style.top + document.all.Layer1.style.height))) {
            return false;
        }
        else {
            HideMenu();
            return false;
        }
    }
}
Avatar billede overclockdk Nybegynder
20. januar 2006 - 11:40 #3
Hey Softspot.. lav det lige som svar så du kan få dine point.. det virkede tak...
Avatar billede softspot Forsker
20. januar 2006 - 11:56 #4
Godt at høre (jeg var lidt usikker) - velbekomme :)
Avatar billede overclockdk Nybegynder
20. januar 2006 - 14:10 #5
Admin: Luk bare tråden problem løst.
Avatar billede softspot Forsker
20. januar 2006 - 14:15 #6
Tak for point :)

Hvem er admin og hvad er det for noget med at lukke tråden...?
Avatar billede overclockdk Nybegynder
20. januar 2006 - 14:16 #7
lukker man ikke tråden når problemet er løst ? :D
Avatar billede softspot Forsker
20. januar 2006 - 14:19 #8
Jo, det sker ved at du accepterer en eller flere af de afgivne besvarelser ;-)
Avatar billede roenving Novice
20. januar 2006 - 15:30 #9
-- og det kan tilføjes, at Ekspertens idé er vidensdeling, så der lukkes _aldrig_ tråde medmindre de overtræder reglerne, for så ville svaret på et konkret spørgsmål jo ikke mere være til rådighed !-)
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