Der er to problemer: 1. Det virker ikke i netscape 4.7, da den ikke kan finde ud af at lave skærmbredden om til et integer - det SKAL virke i IE 4+ & NS4.7+ og også helst NS6...
2. Jeg vil gerne have mulighed for at placere mit div-tag _i forhold til_ centrum på skærmen. Dvs. at jeg gerne vil kunne sige at mit div f.eks. skal placeres i en position der ligger 200 pixels til venstre for centrum af skærmen.
Det haster MEGA meget, så hvis jeg ikke får svar inden kl. 15.00 i dag så lukker jeg spørgsmålet....
Math.round( tal ) afrunder et tal så det er en integer. if (ns4) document.layers[\"cen\"].left = Math.round( ((document.innerWidth-100)/2) );
// find winduets indre bredde og højde: var bredde; var hojde; if ( document.all ) { // IE bredde = document.body.clientWidth; hojde = document.body.clientHeight; } else { bredde = window.inneWidth; hojde = window.innerHeight; };
// find nuværende scroll offset var xOff; var yOff; if ( document.all ) xOff = document.body.scrollLeft; yOff = document.body.scrollTop; } else { xOff = window.pageXOffset; yOff = window.pageYOffset; };
// og så er det bare at regne. //fx: 100px tilvenstre for midtpå: var xPos = Math.round( bredde/2 -100 ) +xOff; //fx: lodret centreret: var yPos = Math.round( hojde/2 ) +yOff;
(eller skal xOff og yOff trækkes fra? jeg roder altid rundt i det:) det er ihvertfald de værdier du skal lege med.
Undrede mig også over at du syntes det var nødvendigt at afrunde. NaN betyder \"slet ikke et tal, hverken integer eller real\" det kommer af at du prøver at aflæse document.innerWidth . den ligger i window.
// find winduets indre bredde og højde: var bredde; var hojde; if ( document.all ) { // IE bredde = document.body.clientWidth; hojde = document.body.clientHeight; } else { bredde = window.innerWidth; hojde = window.innerHeight; };
// find nuværende scroll offset var xOff; var yOff; if ( document.all ) xOff = document.body.scrollLeft; yOff = document.body.scrollTop; } else { xOff = window.pageXOffset; yOff = window.pageYOffset; };
// og så er det bare at regne. //fx: 100px tilvenstre for midtpå: var xPos = Math.round( bredde/2 -100 ) +xOff; //fx: lodret centreret: var yPos = Math.round( hojde/2 ) +yOff;
jakoba >> Vi må desværre væk fra den gamle vane med at lægge scriptet ned lige efter <body>. NS6 kræver, at hele body\'en er indlæst - altså også </body> - så derfor bør der afgjort kaldes på onload...eller:
if (ns4) document.layers[\"cen\"].left = Math.round( ((document.innerWidth-100)/2) );
// find winduets indre bredde og højde: var bredde; var hojde; if ( document.all ) { // IE bredde = document.body.clientWidth; hojde = document.body.clientHeight; } else { bredde = window.innerWidth; hojde = window.innerHeight; };
// find nuværende scroll offset var xOff; var yOff; if ( document.all ) { xOff = document.body.scrollLeft; yOff = document.body.scrollTop; } else { xOff = window.pageXOffset; yOff = window.pageYOffset; };
// og så er det bare at regne. //fx: 100px tilvenstre for midtpå: var xPos = Math.round( bredde/2 -100 ) +xOff; //fx: lodret centreret: var yPos = Math.round( hojde/2 ) +yOff; </script>
Nej, selvfølgelig kan du ikke det...du gør ikke, som der bliver skrevet :o) Du kan ikke få dimensionerne, før body\'en er tegnet. Derfor skal du pakke det sted - hvor du spørger om størrelserne - ind i en funktion, som du fyrer af på onload. /mvh
function placerCen () { // find winduets indre bredde og højde: var bredde; var hojde; if ( document.all ) { // IE bredde = document.body.clientWidth; hojde = document.body.clientHeight; } else { bredde = window.innerWidth; hojde = window.innerHeight; };
// find nuværende scroll offset var xOff; var yOff; if ( document.all ) { xOff = document.body.scrollLeft; yOff = document.body.scrollTop; } else { xOff = window.pageXOffset; yOff = window.pageYOffset; };
// og så er det bare at regne. //fx: 100px tilvenstre for midtpå: var xPos = Math.round( bredde/2 -100 ) +xOff; //fx: lodret centreret: var yPos = Math.round( hojde/2 ) +yOff;
if (ns4) document.layers[\"cen\"].left = xPos; else if (ie4) document.all[\"cen\"].style.left = xPos; else if (dom) document.getElementById(\"cen\").style.left = xPos;
}; //end her slutter funktionen placerCen.
</script>
</head> <body onLoad=\"placerCen()\">
<div id=\"cen\">centreret<br>Næ. starter 100px<br>tilvenstre for center</div>
Det eneste der skulle ændres var at div-tagget skulle have en style=\"position:absolute;\" før det virkede.
Anyway, tak for hjælpen...
Synes godt om
Ny brugerNybegynder
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.