HighDots Forums  

Probleme mit offsetWidth unter Mozilla

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Probleme mit offsetWidth unter Mozilla in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Bernd Schlingenkamp
 
Posts: n/a

Default Probleme mit offsetWidth unter Mozilla - 09-12-2004 , 05:49 PM






Hallo!

Ich entwerfe gerade mit ineinander geschachtelten div-Elementen einen
horizontal scrollbaren Bereich. Dazu benötige ich die Differenz zwischen der
Breite des Containers und der Breite des Inhaltelements:

<div id="testCont" style="position: absolute; top: 0px; left: 0px; width:
50px; height: 50px; overflow: hidden; clip:rect(0px, 50px, 50px, 0px);">
<div id="test" style="position: absolute; top: 0px; left: 0px;">
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
<p>lksdgfksdjldsgjkdskjgökfdgfdskfhdslfhlkdhfkjlag </p>
</div>
</div>

Die reale Breite des Elementes "test" sollte mit offsetWidth zu bestimmen
sein. Leider funktioniert das nur mit dem IExplorer. Der Mozilla gibt immer
die Breite des Elternelementes an (hier 50px). Was muss ich beim Mozilla
beachten? Ich habe mal irgend etwas von einem zweiten Container gelesen,
weiß aber nicht mehr wo.

Vielen Dank für eure Hilfe!

Bern



Reply With Quote
  #2  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 04:22 AM






Bernd Schlingenkamp wrote:
Quote:
Die reale Breite des Elementes "test" sollte mit offsetWidth zu bestimmen
sein. Leider funktioniert das nur mit dem IExplorer. Der Mozilla gibt immer
die Breite des Elternelementes an (hier 50px).
Woher weißt Du, das er die Breite des Elternelements angibt? Das
Kind-Element hat in diesem Fall die gleiche Größe. Mozilla kennt
offsetWidth. Die Verwendung ist mit der im IE weitgehend identisch.
Sollte also funktionieren.

Grüße
Daniel


Reply With Quote
  #3  
Old   
Bernd Schlingenkamp
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 04:30 AM



Hallo!

Danke für die Antwort. Jede Bemühung ist willkommen.

Quote:
Woher weißt Du, das er die Breite des Elternelements angibt? Das
Kind-Element hat in diesem Fall die gleiche Größe. Mozilla kennt
offsetWidth. Die Verwendung ist mit der im IE weitgehend identisch.
Sollte also funktionieren.
Zwischen "sollte" und der Realität liegen manchmal Welten. Auch hier
"sollte" Mozilla zwar, tut es aber nicht.
Was ich mit offsetWidth abfragen will ist die reale - gerenderte - Breite
eines Elementes. Wenn ich folgendes mache funzt es:

1. Die Breite des Containers nicht vorgeben
2. Die Eigenschaft "offsetWidth" des Elementes abfragen
3. Die Breite des Containers mit JavaScript festlegen

Mozilla scheint hier einen zweiten Container zu benötigen. Wie, warum,
weshalb - muss ich noch heraus finden.

Bernd




Reply With Quote
  #4  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 05:55 AM



Bernd Schlingenkamp wrote:
Quote:
Was ich mit offsetWidth abfragen will ist die reale - gerenderte - Breite
eines Elementes. Wenn ich folgendes mache funzt es:

1. Die Breite des Containers nicht vorgeben
2. Die Eigenschaft "offsetWidth" des Elementes abfragen
Sorry, verstehe Dein Problem nicht. Funktioniert es nun mit offsetWidth
oder nicht? Was genau funktioniert nicht, was für Werte erhälst Du
stattdessen und was erwartest Du?
Wenn ich Dein gespostetes HTML verwende, erhalte ich via offsetWidth
korrekte Werte. Diese können aufgrund des unterschiedlichen Box-Models
aber von denen im IE abweichen.


Quote:
Mozilla scheint hier einen zweiten Container zu benötigen.
Nein.

Grüße
Daniel


Reply With Quote
  #5  
Old   
Bernd Schlingenkamp
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 06:11 AM



Hallo!
Quote:
Sorry, verstehe Dein Problem nicht. Funktioniert es nun mit offsetWidth
oder nicht? Was genau funktioniert nicht, was für Werte erhälst Du
stattdessen und was erwartest Du?
Okay, mein Ziel ist es einen horizontal scrollbaren Bereich zu erhalten.
Dazu packe ich das div-Element mit dem Content in ein anderes div-Element,
dessen Größe (hier 50x50) als Fenster für den darunter liegenden Inhalt
dient. Um nun zu berechnen, um wieviel Pixel ich das div-Element mit dem
Content nach links schieben kann, benötige ich die Differenz der Breite des
Eltern-Elements (hier 50px) und der Breite des Inhalt-Elements, die sich per
offsetWidth abfragen lassen sollte. Zumindest im IExplorer erhalte ich hier
die gesamte Breite des Elementes, unabhängig von der Größe des
übergeordneten div-Elements.

Für ein Beispiel siehe mein Anfangsposting.

Quote:
Wenn ich Dein gespostetes HTML verwende, erhalte ich via offsetWidth
korrekte Werte. Diese können aufgrund des unterschiedlichen Box-Models
aber von denen im IE abweichen.
Mhmm, was für Werte erhältst du denn?

Quote:

Mozilla scheint hier einen zweiten Container zu benötigen.

Nein.
Bist du sicher? Woher weißt du dass? -> http://www.dyn-web.com/dhtml/scroll/

Grüße

Bernd




Reply With Quote
  #6  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 06:13 AM



Daniel Kirsch wrote:
Quote:
Sorry, verstehe Dein Problem nicht.
Nachdem Du die Fragen nun auch mit zusätzlichen Infos in n.p.m.dom
gestellt hast weiss ich wenigstens was Du meinst.

Wenn Du das innere Element nicht absolut positionierst, funktioniert es
auch im Mozilla.
Aber warum sagst Du nicht einfach overflow:auto?

Als Fehler von Mozilla würde ich es aber nicht bezeichnen, denn die
tatsächlich gerenderte Größe des absolut positionierten Elementes ist
genau die, die er auch ausgibt. Was er nicht anzeigt, muss er auch nicht
rendern oder berechnen.

Grüße
Daniel


Reply With Quote
  #7  
Old   
Bernd Schlingenkamp
 
Posts: n/a

Default Re: Probleme mit offsetWidth unter Mozilla - 09-13-2004 , 06:30 AM



Hallo Daniel!

Manchmal sieht man den Fehler nicht...und auf relative Positionierung wäre
ich wahrscheinlich auch nicht so schnell gekommen. Der Witz an der ganzen
Sache ist, dass dieses Phänomen nur offsetWidth, nicht aber offsetHeight
betrifft. Ein vertikaler Scrollmechanismus funktioniert problemlos mit
position:absolute und offsetHeight. Warum also diese Abweichung bei
offsetWidth? Naja, bleibt Mozillas Geheimnis.

Gruß
Bernd



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.