25. juli 2002 - 13:19Der er
18 kommentarer og 1 løsning
offsetTop i ie6.0
Hejsa
Jeg slås en del med offsetTop i IE6.0. Den fungerer fuldstændig efter hensigten sålænge min div holdes i body scope, men når jeg flytter den ind i en tabel, giver div.offsetTop ikke det rigtige tal længere.
Prøv følgende kode: <html> <head> <script> function posTop(e) { if(document.layers) return(e.pageY); var i=e.offsetTop; if(e.offsetParent!=null) i+=posTop(e.offsetParent); return(i); } function doOnload() { var n = posTop(document.all.relativeLayer); document.all.test.style.top = n; } </script> </head> <body style="background-color:#cccccc" onload="doOnload()"> <table border="1"> <tr> <td> <div><h1>blah blah blah</h1></div> </td></tr> <tr><td style="background-color:red"> <div><h1>blah blah blah</h1></div> <div id="relativeLayer" name="relativeLayer" style="position:relative">relativ</div> </td></tr></table> <div id="test" name="test" style="position:absolute;left:10;top:300">jeg skal stå over relativ</div> </body> </html>
Er der nogen der ved hvordan jeg får div'en test til at flytte sig op over div'en relativeLayer?
Position skal være relative, og jeg kan ikke ane om det lige er 12 eller et andet tal der skal trækkes fra. Jeg er interesseret i en generel løsning, eller i det mindste på en forklaring på hvordan IE beregner offsetTop.
Jeg forstår vist ikke hvad du mener? Jeg har i min problemformulering inkluderet et eksempel på det, der ikke virker... Hvis du gemmer det som en .htm fil, og afprøver i en ie6.0, skulle du gerne kunne se problemet.
Tak iøvrigt, fordi du gider kigge på det - også til dig, nikolajdu.
hvis test div'en ikke står noget i retning af 386 px nede kunne det være fordi du mangler 'px' der du assigner værdi til test.style.top : document.all.test.style.top = n +'px';
posTop er en i forvejen defineret funktion hos MS og da jeg tidlgere ved fra Jakoba at ikke alle funnktioner kan omdefineres i IE, så er det ihvertilfald noget at kigge på. :)
Det hjalp at fjerne style="position:relative". Den var åbenbart unødvendig, og fik åbenbart IE6.0 til at regne forkert.
Jeg forstår stadig ikke hvorfor ie6 regner forkert med position:relative, men når nu det virker uden, så er jeg faktisk en glad mand.
Jeg vil sige tak til jer begge 2 for hjælpen. Det var nikolajdu der først kom med forslaget om at fjerne position:relative, så jeg mener pointene bør gå til ham (sorry, jakoba)
Dog bør du nok alligevel lige ændre navnet på din topPos() :)
/Nikolaj
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.