Problem bei der Positionsbestimmung im IE

J

Jochen Wilhelm

Guest
Hallo,
ich habe gerade ein massives Problem:
Und zwar will ich ein absolut positionierbares Element (<div style="position: absolute">)
relativ zu einem ganz normalen IMG positionieren.
Im Mozilla 1.7 klappt das auch problemlos, allerdings habe ich im IE verschiedene Probleme:
1. Der IE fügt einen magischen Rand von 2px ein?!
2. Der IE beachtet nicht die Ränder von DIV- Elementen, welche das IMG- Tag umgehen.

Der HTML Code sieht schematisch so aus:

<div class="class1"> <!--css: border-left-width: 2px-->

<div class="class2">
<img src="bla" >
</div>
</div>

Ich bestimme die Position des IMG Elements mithilfe folgender Methode

function getAbsolutePosition(){

var offset = this;
var offsetLeft, offsetTop;
while(offset){
offsetLeft = offset.offsetLeft;
offsetTop = offset.offsetTop;
offset = offset.offsetParent;
}
}
Habe auch versucht, an das Style-Objekt des jeweiligen Offsets ranzukommen (offset.style.borderTopWidth bzw. offset.style.borderLeftWidth), allerdings scheint dies nicht zu funktionieren, da meine CSS Deklarationen in einer eigenen Datei ausgelagert sind. Wenn jemand weiß, wie ich daran kommen könnte, wäre ich auch schon überglücklich!

Vielen Dank schon mal für eure Hilfe!

Viele Grüsse

Jochen Wilhelm
 
Hi ich kann dir mal einen codeschnippsel geben der wohl die position recht genau findet.

CODE
//Extra code to find position:
function findPos(num){
//alert(num)
if(bw.ns4){ //Netscape 4
x = document.layers["layerMenu"+num].pageX
y = document.layers["layerMenu"+num].pageY
}else{ //other browsers
x=0; y=0; var el,temp
el = bw.ie4?document.all["divMenu"+num]:document.getElementById("divMenu"+num);
if(el.offsetParent){
temp = el
while(temp.offsetParent){ //Looping parent elements to get the offset of them as well
temp=temp.offsetParent;
x+=temp.offsetLeft
y+=temp.offsetTop;
}
}
x+=el.offsetLeft
y+=el.offsetTop
}
//Returning the x and y as an array
return [x,y]
}



Hoffe es hilft dir
 
Zurück
Oben