Hallo an alle
Ich bin gerade dabei mit CSS und Javascript ein dynamisches Menu zu basteln. Dafuer habe ich mit
#Menuname
{
position:absolute;
top:x;
left:y;
width:a;
height:b;
}
und
<div id="Menuname">
<img src="xy.jpg">
...
</div>
mehrere Layer definiert. Mit dem Netscape kann ich ueber document.layers[i] wunderbar auf die Layer zugreifen und diese verschieben.
Der IE kennt aber das document.layers Objekt nicht sondern das document.all Object. Da stehen aber ALLE HTML-Tags drin. Also hab ich mir mit
var num_max = document.all.length;
for(var i=0 ; i<num_max ; i++)
{
if(document.all[i].tagName=="div")
{
...
}
}
die <div>-Tags herausgefiltert.
Danach wollte ich mit
document.all[i].style.top=alter_wert + schritt;
den Layer neu positionieren. Da der IE Die Position des Layers aber als z.B. 100px abspeichert ist die obige Addition gar nicht moeglich, sondern ergibt den z.B. den String "150px50". Die Zuweisung auf die linke Seite quittiert der IE dann mit der Fehlermeldung "Ungueltiges Argument". Wenn ich mit einer substring(0,3)-Anweisung die beiden Buchstaben "px"am Ende entferne dann ist das Ergebniss der String 15050. Der Layer wird also ganz falsch positioniert. Einen versuchten Typecast mit toInt(alter_wert) quittiert der IE mit der Fehlermeldung "Objekt erwartet". So, und jetzt weiss ich nicht mehr weiter. Wie bringe ich den IE dazu zu document.all.style.top einfach nur etwas dazuzuaddieren? Oder denke ich viel zu kompliziert?
Vielen Dank im Voraus.
Sven