Avatar billede liza Nybegynder
26. juni 2001 - 14:00 Der er 10 kommentarer og
1 løsning

genindlæs ved ny vinduesstørrelse

jeg har en dropdownmenu
content.js:
var left_corner_x  = 127
var left_corner_y  = 240;
når jeg ændrer vinduesstørrelsen skal menuen genindlæses.hvordan gør jeg?
håber der er nogen kan hjælpe

liza
Avatar billede jakoba Nybegynder
26. juni 2001 - 14:27 #1
i din body kommandu lægger du en onResize= event
(hvis det er med rammer lægges den i <frameset kommandoen)

<body ... omresize=\"resizePrell()\">

før det, i head skal der så ligge lidt script:

<script language=\'javascript\'>

timeHandle = 0;

function resizePrell( ) {
  clearTimeout( timeHandle );
  timeHandle = setTimeout( \"self.location.reload(true)\", 75 );
}; //end resizePrell( )

</script>

så skulle den være der.

mvh JakobA
Avatar billede jakoba Nybegynder
26. juni 2001 - 14:28 #2
Ups. ikke omresize.  det staves onresize
Avatar billede liza Nybegynder
26. juni 2001 - 14:40 #3
okay jeg har nok ikke forklaret mig ordentligt
kan jeg f.eks i content.js indsætte
if (bredde <= 750) mappe = \"lille/\"
else if (bredde >= 950) mappe = \"stor/\"
else mappe = \"mellem/\"
eller noget i den stil og så have de 3 mapper med forskellige x,y koordinater
måske kan det laves smartere?

liza
Avatar billede jakoba Nybegynder
26. juni 2001 - 17:58 #4
dit skript bliver udført igen som en del af den reload, så det skulle virke fint.

eller mener du at der først skal reloades når det er tid til at skifte fra den en mappe til den anden?

mvh JakobA
Avatar billede liza Nybegynder
27. juni 2001 - 14:53 #5
ja faktisk, dit første svar er ok, men jeg skal have lavet så menuen dropper ned samme sted, uanset skærmstørrelse
f.eks:
hvis skærm=800*600  x = 30 y = 240;
hvis skærm=1024*768 x = 127 y = 240;
hvis skærm=1152*864 x = 200 y = 240;
så hvis man resizer skal menuen stadig komme lige under hovedmenu.
kan man ikke det?

liza
Avatar billede jakoba Nybegynder
27. juni 2001 - 20:46 #6
Joe, det kan man. men hvordan kommer meget an på hvilken meny du har brugt osv osv.
I eksemplet nedenfor placeres dropdowns relativt til meny-header cellen, er det det du mener?
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp73123.html

mvh JakobA
Avatar billede liza Nybegynder
28. juni 2001 - 16:16 #7
det er præcis det jeg mener, men jeg vil gerne bruge den jeg har i forvejen, da menuen i den selv forsvinder ved onmouseout.
jeg vil gerne afsætte flere point, hvis du kan hjælpe mig.

liza
Avatar billede jakoba Nybegynder
28. juni 2001 - 16:24 #8
60 er nok for det spørgsmål.

men jeg tør ikke give konkrete råd uden at vide hvad jeg snakker om :).
Har du mulighed for at lægge siden på nettet og give et link så vi kan kikke i koden?

mvh JakobA
Avatar billede liza Nybegynder
28. juni 2001 - 16:37 #9
desværre er jeg ikke kommet så langt endnu, men koden er her:<head> <link rel=stylesheet href=http://localhost/menu.css type=text/css>
<script language=JavaScript src=http://localhost/content.js></script>
<script language=JavaScript src=http://localhost/menu.js></script>
</head>
<body>
<a href=http://localhost/ onMouseOver = \"menu_enter (1);\" onMouseOut = \"menu_exit (1);\" class=topMenu>Artikler</a>
</body>

content.js:
var left_corner_x  = 124; // x-coordinate of top left corner of dropdown menu
var left_corner_y  = 240; // y-coordinate of top left corner of dropdown menu
var back_color    = \'#9933FF\'; // the background color of dropdown menu
var border_color  = \'#6600CC\'; // the color of dropdown menu border
var border_size    = \'2\'; // the width of dropdown menu border
var menu_width    = \'100\'; // the width of dropdown menu
//

var delay          = 500;
var active_layer_id = -1; 
var on_layer_id    = -1; 
var buff_id        = -1; 

// menu content; the dropdown menus themselfs between \'\' and items of every dropdown menu are diveded by |;
//
menu_content    = new Array (\'100 | <a href=http://localhost/forum/index.php?f=0 class=subMenu>Oversigt</a>\' |);

menu.js:
// check browser version
NS4 = (document.layers) ? 1 : 0;

function layer_enter (id)
{
    on_layer_id = id;
}
function layer_exit (id)
{
    on_layer_id = - 1;
    setTimeout (\'hide(\'+ id +\')\', delay/5);
}
function menu_enter (id)
{
    if (buff_id >= 0)
        hide (buff_id);

    show (id);
    active_layer_id = id;
}
function menu_exit (id)
{
    setTimeout (\'hide(\'+ id +\')\', delay);
    buff_id = active_layer_id;
    active_layer_id = -1;
}
function show (id)
{
    if (!NS4)
        document.all[\'Menu\' + id].style.visibility = \"visible\";
    else
        document.layers[id].visibility = \"visible\";
}
function hide (id)
{
    if (active_layer_id != id && on_layer_id != id)
    {
        if (!NS4)
            document.all[\'Menu\' + id].style.visibility = \"hidden\";
        else
            document.layers[id].visibility = \"hide\";
    }
}

function generate_layers ()
{

    for (i = 0; i < menu_content.length; i++)
    {
        elements = menu_content[i].split (/\\s*\\|\\s*/);
        layer_body = \'\';
        menu_width = elements[0]*1;
       
        for (j = 1; j < elements.length; j++)
        {
            layer_body += elements[j];   
            if ((NS4 && j < elements.length - 1) || (!NS4 && j < elements.length - 1))
                layer_body += \'<hr width=\' + (menu_width - 8) + \' size=0 color=\'+ back_color + \'>\';
        }

        if (!NS4)
            layer_header = \'<div id=Menu\' + i +
                            \' onMouseOver=\"layer_enter (\' + i + \');\" onMouseOut = \"layer_exit (\' + i + \');\"\' +
                          \' style=\"visibility: hidden; position: absolute; left: \' + (left_corner_x) +
                          \'; top: \' + left_corner_y + \';\">\';
        else
            layer_header = \'<layer id=\' + i +
                          \' onMouseOver=\"layer_enter (\' + i + \');\" onMouseOut = \"layer_exit (\' + i + \');\"\' +
                          \' visibility=hide left=\' + (left_corner_x) +
                          \' top = \' + left_corner_y + \'>\';

        layer_header += \'<table width=\' + menu_width + \' cellpadding=0 cellspacing=0 border=0>\' +
                        \'<td bgcolor=\' + border_color + \'><table width=\' + menu_width + \' cellpadding=3 \' +
                        \'cellspacing=\' + border_size + \' border=0><td width=\' + menu_width + \' bgcolor=\' + back_color + \'>\';


        layer_footer = \'</td></table></td></table>\';
        if (!NS4)
            layer_footer += \'</div>\';
        else
            layer_footer += \'</layer>\';
        document.writeln (layer_header + layer_body + layer_footer);
       
        left_corner_x = left_corner_x*1 + menu_width*1;

    }
}
generate_layers ();

håber ikke det er for meget at smide ind her
jeg går ikke ud fra at css filen har nogen betydning her.

liza
Avatar billede liza Nybegynder
28. juni 2001 - 16:56 #10
hov! links passer vist ikke helt sammen

Avatar billede liza Nybegynder
01. juli 2001 - 19:09 #11
tak for hjælpen
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