Ermittlung der Breite eines dynamisch gefüllten divs
Mark-Oliver
- dhtml
Hallo,
folgendes Problem bringt mich noch an den Rand der Verzweiflung:
Ich habe ein div (div1) mit fester Größe (z.B. Breite: 200px), in dem ein weiterer div (div2) liegt, dessen Breite nicht über css festgelegt ist, sondern je nach dynamischer Füllung vom Inhalt bestimmt wird. div2 wird nun per js langsam horizontal durch div1 geschoben (ähnlich einem Ticker). Das ist kein Problem, indem ich den via document.getElementById("div2").style.left ausgelesenen Wert sukzessive um 1 Pixel verkleinere.
Nun das Problem: Wenn div2 komplett durchgeschoben wurde, soll etwas anderes in div1 passieren. Dazu muss ich jedoch wissen, wann div2 durch ist. Da ich jedoch die Breite von div2 nicht über style festlegen kann (ich kenne die Breite des Inhalts nicht), kann ich natürlich auch document.getElementById("div2").style.width nicht nutzen, um auszurechnen, wann das der Fall ist.
Der Ansatz wäre ja:
Wenn left(start)-left(aktuell)=breite dann fertig
Aber ohne festgelegte Breite erhalte ich ja nur einen "Leerwert" (undefined). Und mit dem läßt es sich schlecht rechnen.
Der Versuch, einfach erstmal eine "virtuelle" Breite im style festzulegen, z.B. 50px, bringt mich nicht weiter, da ich dann immer nur die 50px und nicht den tatsächlichen Wert in style.width erhalte.
Wie also finde ich raus, wie breit div2 ist?
Wenn irgendjemand eine Idee für einen anderen Ansatzpunkt hätte, wäre ich natürlich auch echt dankbar.
ciao,
Mark-Oliver.
Hallo,
Wie also finde ich raus, wie breit div2 ist?
Wenn irgendjemand eine Idee für einen anderen Ansatzpunkt hätte, wäre ich natürlich auch echt dankbar.
die breite kannst du mit
document.getElementById("div2").offsetWidth
ermitteln. das sollte dir weiterhelfen. :)
MfG Mülli
document.getElementById("div2").offsetWidth
Super! Vielen Dank. Mein Tag ist gerettet!
;-)