Avatar billede dr.truti Nybegynder
21. december 2003 - 15:36 Der er 7 kommentarer og
1 løsning

Opdatering hvert sek.

Mit script skal kunne tjekke størrelsen på browser vinduet, og sætte en variabel i min css så min menu bliver placeret korrekt! Det virker også fint, men når brugeren resizer sin browser flytter menu'en sig ikke og det ser noget afkavet ud!

Jeg vil derfor køre et tjek på om browseren har samme størrelse som før, og hvis den har det skal der ikke ske noget, hvis størrelsen er blevet ændret skal siden opdateres med:

self.location.reload(true);

Her er mig script som det ser ud nu:
---------------------------------------------------------
<script language="JavaScript">
var winW = 630;

placering()

function placering()
{
if (parseInt(navigator.appVersion)>3)
{
    if (navigator.appName=="Netscape")
    {
          winW = window.innerWidth-16;
    }
    if (navigator.appName.indexOf("Microsoft")!=-1)
    {
          winW = document.body.offsetWidth-20;
        winW = winW/2+413;
    }
}
}
document.write("Window new width: " + winW + "<br>")

if (gammel != winW)
{
gammel = winW;
self.location.reload(true);
}

setInterval("placering()", 1000);
</script>
---------------------------------------------------------

Da dette er mit første JavaScript er jeg ikke så meget hjemme i det, så gerne en god forklaring ;-)
Avatar billede skovenborg Nybegynder
21. december 2003 - 16:49 #1
du kunne evt. i stedet bruge eventen onresize. På den måde kan du i stedet skrive:
<body onresize="placering();"> og så droppe setInterval.
Avatar billede skovenborg Nybegynder
21. december 2003 - 16:50 #2
...nåja foresten så skal siden reloades helt hvis du bruger document.write - så det skal du lige tage højde for. Jeg vil anbefale dig helt at droppe den, så du ikke ramler ud i problemmer :-)
Avatar billede dr.truti Nybegynder
21. december 2003 - 16:59 #3
Jeg syntes ellers det lyder ret godt, jeg har nu følgende i min <body>:

<body onresize="placering();" onLoad="document.getElementById ('menu').style.left=winW+'px';">

onresize er bare ikke flettet rigtigt ind, da det ikke virker!
Avatar billede skovenborg Nybegynder
21. december 2003 - 17:07 #4
jeg kan godt se ideen, men problemmet er jo at din menu kun bliver placeret efter din winW variabel én gang - nemlig når den loader.
Du bliver derfor nok nød til at placere menuen inde i din placering() funktion:
<script language="JavaScript">
var winW = 630;

function placering()
{
if (parseInt(navigator.appVersion)>3)
{
    if (navigator.appName=="Netscape")
    {
          winW = window.innerWidth-16;
          document.getElementById('menu').style.left = winW+"px";
    }
    if (navigator.appName.indexOf("Microsoft")!=-1)
    {
          winW = document.body.offsetWidth-20;
        winW = winW/2+413;
        document.all.menu.style.left = winW+"px";
    }
}
}
document.write("Window new width: " + winW + "<br>")

if (gammel != winW)
{
gammel = winW;
self.location.reload(true);
}
</script>

<body onresize="placering();" onload="placering();">

Jeg har droppet din setInterval, men du kan selvfølgelig altid tage den på igen hvis du synes.
Avatar billede dr.truti Nybegynder
21. december 2003 - 23:49 #5
skovenborg: Damn..! Hvis du havde stået her ved siden af mig havde du fandeme fået en krammer!

Jeg har siddet så fast hele dagen, i den latterlige kode, og fik med møje lavet den først nævnte (Det er mit første javascript (Jeg har ikke lavet hello world endnu!)) og så kommer du lige med et genialt snit, og derefter virker det bare!

KANON!
Avatar billede dr.truti Nybegynder
21. december 2003 - 23:50 #6
Hævede lige pointsne med 20!

Giv mig svar...!
Avatar billede skovenborg Nybegynder
22. december 2003 - 00:52 #7
helt i orden - og glædelig jul :-)
Avatar billede skovenborg Nybegynder
22. december 2003 - 00:53 #8
...og held og lykke med alt det javascript - det kan være lidt drillende i starten. Men ellers kan du altid spørge herinde ;-)
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