kostenloser Webspace werbefrei: lima-city


Von Text eingenommenen Platz bemessen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    m******s

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. z****r

    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. :)
  4. s********r

    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
  5. Autor dieses Themas

    m******s


    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.
  6. Autor dieses Themas

    m******s

    Okay, mittlerwiele bin ich dazu gekommen, das auszuprobieren und offenbar ist die Breite 0 :mad:
    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
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!