Avatar billede lsolesen Nybegynder
22. juli 2003 - 05:22 Der er 24 kommentarer og
1 løsning

Menu som bliver

Jeg har brug for et script, som får en menu til at blive øverst oppe. Den skal bruges på www.vih.dk, så når man scroller nedad så vil den sorte menu blive helt i toppen af browseren.
Avatar billede thesurfer Nybegynder
22. juli 2003 - 06:03 #1
her er et par stykker.. det er muligt at lave om på designet:

http://www.dynamicdrive.com/dynamicindex1/sm/index.htm (IE)


http://www.sitenavigation.net/menu_javascripts/cool_menu_bar/cool_menu_bar.html (IE, Opera)

http://resource.atlantis-designs.com/scriptindex1/topnav1.html (IE, Opera: problemer med layers/z-index/z-order)
Avatar billede lsolesen Nybegynder
22. juli 2003 - 08:39 #2
Tak, men jeg må lige præcisere spørgsmålet. Jeg har nemlig ikke brug for, at det er sådan nogle dropdownmenuer. Det skal bare være sådan, at selve menuen bliver der
Avatar billede don_r Nybegynder
22. juli 2003 - 09:42 #3
Du kan prøve følgende:

Sæt en <span id="menu"> rundt om din menu.

Sæt

<style type="text/css">
#menu {
    position:absolute;
    left:0;
    top:0;
    visibility: hidden;
}
</style>
<script language="javascript">
    var isNS = navigator.appName.indexOf("Netscape") >= 0;
    function posmenu() {
        var obj;
        var winHeight;
        var scroll;
        if(isNS) {
            obj = window.document.menu;
            winHeight=window.innerHeight;
            scroll=window.pageYOffset + 4;
        } else {
            obj = document.all.menu.style;
            winHeight=document.body.offsetHeight;
            scroll=document.body.scrollTop;
        }
        //obj.top = winHeight - objHeight + scroll;
        obj.top = scroll;
    }
    function init() {
        if(isNS) {
            window.document.menu.visibility = 'visible';
        } else {
            document.all.menu.style.visibility = 'visible';
        }
        window.setInterval("posmenu()",1);
    }
</script>

ind og lav en onload i body init();
Avatar billede lsolesen Nybegynder
22. juli 2003 - 09:53 #4
Så forsvinder min menu bare, se selv på www.vih.dk
Avatar billede don_r Nybegynder
22. juli 2003 - 09:56 #5
5 sek så kigger jeg på det ;o)
Avatar billede don_r Nybegynder
22. juli 2003 - 09:59 #6
Prøv at sæt

<script language="javascript">
    var isNS = navigator.appName.indexOf("Netscape") >= 0;
    function posmenu() {
        var obj;
        var winHeight;
        var scroll;
        if(isNS) {
            obj = window.document.menu;
            winHeight=window.innerHeight;
            scroll=window.pageYOffset + 4;
        } else {
            obj = document.all.menu.style;
            winHeight=document.body.offsetHeight;
            scroll=document.body.scrollTop;
        }
        //obj.top = winHeight - objHeight + scroll;
        obj.top = scroll;
    }
    function init() {
        if(isNS) {
            window.document.menu.visibility = 'visible';
        } else {
            document.all.menu.style.visibility = 'visible';
        }
        window.setInterval("posmenu()",1);
    }
</script>
før body. I head i stedet, jeg tror problemet er at når siden loader laver den en onload før funktionen er loadet.
Avatar billede lsolesen Nybegynder
22. juli 2003 - 10:02 #7
Det har jeg forsøgt, men den siger at init() ikke eksisterer i onload?
Avatar billede don_r Nybegynder
22. juli 2003 - 10:05 #8
prøv at put javascripet i en fil og inkludere den i stedet.
Avatar billede don_r Nybegynder
22. juli 2003 - 10:07 #9
ahhh det hedder text/javascript ikke javascript/text
Avatar billede don_r Nybegynder
22. juli 2003 - 10:08 #10
<script language="javascript" type="text/javascript">
Avatar billede don_r Nybegynder
22. juli 2003 - 10:10 #11
Du skal nok sætte det om hele toppen i stedet for kun menuen ;o)
Avatar billede lsolesen Nybegynder
22. juli 2003 - 10:10 #12
Det virker lidt bedre :) Undskyld jeg ødelagde dit script. Nu er mit problem bare, at den sidder lidt højt oppe allerede fra starten, og den når ikke hele vejen over længere.
Avatar billede don_r Nybegynder
22. juli 2003 - 10:12 #13
Jeg ville lave plads (evt. med en blank gif) til hele toppen. Menu + hele den brune top. Herefter sætte <div id="menu"> rundt om hele toppen.
Avatar billede don_r Nybegynder
22. juli 2003 - 10:13 #14
Eller det samme kun med menuen.
Avatar billede don_r Nybegynder
22. juli 2003 - 10:14 #15
<!-- Menuen starter -->
<div id="menu" width="193">
<div class="topmenu">
    <img src="/grafik/blank.gif" width="193" height="81" border="0">
    <table cellspacing="0" cellpadding="0">
    <tr><td><a class="topmenupunkt" href="/info/" title="Værd at vide">Værd at vide</a></td><td><a class="topmenupunkt" href="/langekurser/" title="Se de lange kurser">Lange kurser</a></td><td><a class="topmenupunkt" href="/kortekurser/" title="Se de korte kurser">Korte kurser</a></td><td><a class="topmenupunkt" href="/nyheder/" title="Sidste nyt">Sidste nyt</a></td><td><a class="topmenupunkt" href="/dialog/" title="Dialog">Dialog</a></td><td><a class="topmenupunkt" href="/faciliteter/" title="Faciliteter">Faciliteter</a></td><td><a class="topmenupunkt" href="/underviser/" title="Lærere">Lærere</a></td><td><a class="topmenupunkt" href="/elevforeningen/" title="Tidligere elever">Tidligere elever</a></td><td><a class="topmenupunkt" href="/bestilling/" title="Bestil og tilmeld">Bestil og tilmeld</a></td></tr></table></div>
</div>
<!-- Menuen slutter -->
Avatar billede lsolesen Nybegynder
22. juli 2003 - 10:25 #16
Nu bliver mit problem jo, at menuen når der scrolles kommer til at svæve de her 81 pixels nedenunder toppen :)
Avatar billede don_r Nybegynder
22. juli 2003 - 10:27 #17
Det er lidt den berømte pest eller kolarar. Jeg ville nok tage hele toppen med. Så tror jeg det kommer til at se ledt bedere ud.
Avatar billede lsolesen Nybegynder
22. juli 2003 - 10:29 #18
Jeg ved nu, at det andet kan lade sig gøre. Har set det på http://giv.dk/, men det skal ikke være en dropdownmenu.
Avatar billede don_r Nybegynder
22. juli 2003 - 10:31 #19
Det kan jeg se, jeg kigger lige på det ;o), det kan være jeg også kan lære noget. Vender tilbage om lidt.
Avatar billede lsolesen Nybegynder
22. juli 2003 - 10:40 #20
:) I øvrigt virker det lidt mærkeligt, at hvis man går ind på fx lange kurser og klikker på et af de øverste punkter, så trækker menuen sig sammen. Det er ikke noget problem, hvis man klikker på et af linkene længere nede? Mystisk!
Avatar billede don_r Nybegynder
22. juli 2003 - 10:46 #21
Det var alt for svært at finde ud af deres så jeg lavede lidt om i mit egent:

Du skal i stedet:

fjerne - <img src="/grafik_gr3/spacer.gif" height="81">

i stedet for
obj.top = scroll; i funktionen skal stå

if(scroll == 0) {
            obj.top = 81+scroll;
        }
        else if(scroll<81) {
            obj.top = (81-scroll)+scroll;
        }
        else {
            obj.top = scroll;
        }
Avatar billede lsolesen Nybegynder
22. juli 2003 - 11:11 #22
Det virker sandelig, og er elegant. Se dog lige min kommentar 10:40:22 og se på siden: www.vih.dk/langekurser/ og prøv at trykke på et af de øverste links! Det er som om, at den pludselig tager bredden fra div class=bodybx i stedet for fra menu!
Avatar billede don_r Nybegynder
22. juli 2003 - 11:18 #23
Jeg kan ikke få den til at "fejle", jeg sidder med en IE6.0 hvil´ken browser bruger du?

Jeg er inde under http://www.vih.dk/langekurser/ og trykker på kursusoversigt ???
Avatar billede lsolesen Nybegynder
22. juli 2003 - 11:29 #24
Mærkeligt. Den fejler her hos mig. Sidder med IE5.0!
Avatar billede lsolesen Nybegynder
22. juli 2003 - 11:54 #25
don_r > Men tak for hjælpen i hvert fald. Du får pointene :)
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