Avatar billede snie97 Nybegynder
25. juni 2001 - 23:43 Der er 15 kommentarer og
2 løsninger

beregning af x-koordinat

hej...

jeg har lavet en 695 pixels bred tabel på min side og centreret den.

nu skal jeg så have regnet x-koordinatet på den ud. jeg havde tænkt mig noget med 2/(window.innerwidth-695), men når jeg forsøger at skriv document.write(window.innerwidth) får jeg bare \"undefined\".

hvordan skal jeg så gøre?
Avatar billede jakobandersen Nybegynder
25. juni 2001 - 23:58 #1
Mit gæt er at du bruger explorer. Explorer understøtter ikke window.innerWidth brug derfor istedet:

document.body.clientWidth

Men så skal du lige huske to ting:

1)Bibehold window.innerWidth da det er standarden for Javascript.

2) Du har først adgang til document objektet når bodyen er udskevet.
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:00 #2
Du skal skrive med rigtige store og små bogstave og så skal du forresten også bruge de rigtige variable:

window.innerWidth  (stort W i innerWidth) er den variabel hvor Netscape har vinduets indre bredde.
I IE hedder den tilsvarende variabel
document.body.clientWidth  (igen stort W)

så lav din kode noget i retning af:

var indreBredde;
if ( navigator.appName=\"Netscape\" )
  indreBredde = window.innerWidth
else
  indreBredde = document.body.clientHeight;

//herefter kan du så bruge indreBredde i beregninger og som parameter osv.

mvh JakobA
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:02 #3
Ups. da ikke clientHeight. Doh. skriv clientWidth.
Avatar billede snie97 Nybegynder
26. juni 2001 - 00:22 #4
Fejl: Antallet af argumenter er forkert, eller egenskabstildelingen er ugyldig

jeg er ret nubi i javascript... fejlen kommer på tegn 1 på den linje hvor der står if ( navigator.appName=\"Netscape\" )

jeg kender php og der skal der ; efter hver linje... derfor prøvede jeg at skrive
var indreBredde;
if (navigator.appName=\"Netscape\");
  indreBredde = window.innerWidth;
else;
  indreBredde = document.body.clientWidth;

men så var der en syntaksfejl ved else;
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:33 #5
Nej, nej. ikke så mange semikolonner i javascript. Kun de to der står.
fejlen er i min betingelse. Der skal bruges dobbelt == ved sammenligninger.
if (navigator.appName==\"Netscape\");

en rigtig begynderfejl :(

mvh JakobA
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:37 #6
og som moonduck siger skal scriptet så efter din <body kommado. hvis det står før kan IE variablen ikke aflæses eftersom der ikke er nogen document.body endnu.
Avatar billede jakobandersen Nybegynder
26. juni 2001 - 00:41 #7
jakoba>> Hvorfor vil du have document.body.clientWidth i else?? Det er da den der er \"smallest\" understøttet i browsere. Jeg ville hellere bruge:

if(document.all){
indreBredde = document.body.clientWidth;
}else{
indreBredde = window.innerWidth;
}

Så får vi f.eks. også opera, konquere og alle de browsere der bygger på gecko med!
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:44 #8
Ups. Det vidste jeg ikke. Takker.
Avatar billede jakobandersen Nybegynder
26. juni 2001 - 00:48 #9
Vi kan jo alle lære :-)
Avatar billede jakoba Nybegynder
26. juni 2001 - 00:50 #10
Ja heldigvis. :-))
Avatar billede olebole Juniormester
26. juni 2001 - 12:33 #11
<ole>
Og der er sikkert andre, der også kan lære  :o)
I NS6+ skal også </body> være skrevet, før man kan aftaste dimensionerne. Og sådan er der SÅ meget......  :oD
/mvh
</bole>
Avatar billede jakoba Nybegynder
26. juni 2001 - 13:51 #12
Men NS6 supporterer da window.innerWidth gør den ikke? og ikke document.all så det er ok.
Eller er window.innerWidth heller ikke tilgængelig før </body>. (Mand de problemer den scrollbar gir :( ).
Avatar billede olebole Juniormester
27. juni 2001 - 12:05 #13
Hele body\'en skal være loaded, før du kan aftaste mål på body\'en i NS6 - men du har helt ret. Jeg havde ikke set ordentligt efter  :o)
NS6 understøtter fint window.innerWidth - hvor der ikke anvendes \'body\', så deeeeeet.....  :)
Avatar billede snie97 Nybegynder
28. juni 2001 - 12:08 #14
moonduck får 10 for clientwidth
jakoba får 20 for koden
Avatar billede jakobandersen Nybegynder
05. juli 2001 - 00:38 #15
Kan jeg ikke få den for clientWidth istedet da vi jo er i et casesensetive miljø :-)
Avatar billede olebole Juniormester
05. juli 2001 - 00:47 #16
...og så 10 ekstra for den til moonduck - rapRap  :oD
Avatar billede jakobandersen Nybegynder
05. juli 2001 - 00:54 #17
Jeg takker :-)
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