Von Text eingenommenen Platz bemessen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
all
anzeigen
auslese
befehlen
brauchen
buchstabe
ding
dynamischen text
endeffekt
frage
http
jemand
objekt
schauen
seltsamer fehler
testen
text
umweg
vergessen
wissen
-
Moin,
also, ich möchte ein div haben, das mit Scrollbars versehen wird, wenn es überläuft. Das ist ja erst einmal null problemo. Möchte jetzt aber mit Javascript auslesen, ob bei einem dynamischen Text der zur Verfügung stehende Platz ausreicht, oder ob Scrollis angezeigt werden. Und am besten dazu wissen, wie breit der Scrolli ist. Dachte mir, der einfachste Weg wäre eigentlich, zu schauen, wie groß der Textbereich des divs denn nun ist (denn der wird ja rechts bzw. unten verkleinert, wenn ein Scrollbar angezeigt wird). Da es im Endeffekt eh genau darum geht, diese Maße zu wissen und das erste eher der Umweg war.... naja ;)
Also, weiß jemand, wie man mit Javascript von einer div die Höhe und die Breite des benötigten Textbereiches auslesen kann?
Benutz übrigens Prototype und möglicherweise Scriptaculous. Wenn eienr damit also ne schnelle elegante Lösung kennt, nur her damit.
Beitrag geändert: 30.6.2008 4:46:58 von merovius -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du darfst aber nicht vergessen, dass man Text auch leicht zoomen kann und das dann nicht fuer alle klappt. Sonst wuerde ich das einfach mal testen. Also du nimmst fuer jeden Buchstaben einen Hoehen- und Breitenwert an und codest dir dann dein Dings danach. Hinterher fuerst du es aus und guckst, ob die Werte vielleicht noch etwas zu klein bzw. schon zu gross sind und korrigierst sie etwas und testest wieder. So habe ich das jedenfalls das letzte Mal gemacht. :)
-
Ich denke, das liesse sich mit zwei verschachtelten DIVs bewerkstelligen. Der innere DIV-Layer enthält den Text, der äussere ist der eigentliche Scrollbereich. Nun kannst du mit offsetWidth und offsetHeight die Breite und die Höhe der inneren Div-Boxe auslesen und je nach Werten die Scrollbar anzeigen lassen oder eben nicht.
http://de.selfhtml.org/javascript/objekte/all.htm#offset_width
http://de.selfhtml.org/javascript/objekte/all.htm#offset_height
Mit diesen Befehlen ist es ja dann eigentlich einfach... Du überprüfst dann einfach
if(auesserer_div.offsetWidth<innerer_div.offsetWidth)
MfG
sebigisler -
Du darfst aber nicht vergessen, dass man Text auch leicht zoomen kann und das dann nicht fuer alle klappt. Sonst wuerde ich das einfach mal testen. Also du nimmst fuer jeden Buchstaben einen Hoehen- und Breitenwert an und codest dir dann dein Dings danach. Hinterher fuerst du es aus und guckst, ob die Werte vielleicht noch etwas zu klein bzw. schon zu gross sind und korrigierst sie etwas und testest wieder. So habe ich das jedenfalls das letzte Mal gemacht. :)
Aus genau dem Grund (dass die Anzeige nicht überall gleich ist und ich gerne eine kompatible standardkonforme Page hätte (sonst würde ich den Mist ja gar nicht brauchen) kommt das nicht in Frage.
Ich denke, das liesse sich mit zwei verschachtelten DIVs bewerkstelligen. Der innere DIV-Layer enthält den Text, der äussere ist der eigentliche Scrollbereich. Nun kannst du mit offsetWidth und offsetHeight die Breite und die Höhe der inneren Div-Boxe auslesen und je nach Werten die Scrollbar anzeigen lassen oder eben nicht.
http://de.selfhtml.org/javascr(...)t/objekte/all.htm#offset_width
http://de.selfhtml.org/javascr(...)/objekte/all.htm#offset_height
Mit diesen Befehlen ist es ja dann eigentlich einfach... Du überprüfst dann einfach
if(auesserer_div.offsetWidth<innerer_div.offsetWidth)
MfG
sebigisler
Klingt ziemlich genau nach dem, was ich gesucht habe ;) Dankeschön. -
Okay, mittlerwiele bin ich dazu gekommen, das auszuprobieren und offenbar ist die Breite 0
Also,
alert($(\'main_inner\').offsetWidth);
gibt bei mir nur \"0\" aus.
[edit]
Okay, anscheinend ein seltsamer Fehler, der dafür sorgt, dass das Skript aufgerufen wird, bevor das div ordentlich geladen ist oder so, habs jetzt einigermaßen hinbekommen.
Beitrag geändert: 3.7.2008 6:46:13 von merovius -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage