Felix Riesterer: Wieviel Pixel sind 100% tatsächlich?

Hi Leute!

Auf meiner Seite läuft ein Newsticker in Javascript. Innerhalb des Scriptes gibt es eine feste Breitenangabe in Pixeln, die die maximale Länge für die Laufschrift bestimmt. Nun möchte ich aber meine Seite für verschiedene Fenstergrößen variabel gestalten, so dass die Laufschrift mal länger und mal kürzer laufen soll, je nach Platz im Browserfenster (nich jeder surft mit Vollbild).

Der Lauftext sitzt in einer Tabelle, die wiederum innerhalb einer Tabelle sitzt, die wiederum... also verschachtelte Tabellen noch und nöcher. Jetzt meine Frage:

Wie kann ich per Javascript ermitteln, wieviele Pixel Breite meine unterunter-Tabelle tatsächlich hat? Im Tabellen-tag steht 100%...

Code-Beispiel
<table width="100%" border="0">
 <tr>
  <td width="230">
   <table width="100%">
    <tr>
     <td>Navigation</td>
    </tr>
   </table>
  </td>
  <td style="text-align:center;">
   <table width="100%" border="0"> <!-- wieviele Pixel Breite??? -->
    <tr>
     <td><script language="Javascript" src="ticker.js"></script></td>
    </tr>
   </table>
  </td>
 </tr>
</table>

Vielen Dank für Eure Hinweise!

Gruß, Felix Riesterer.

  1. Hallo,

    Wie kann ich per Javascript ermitteln, wieviele Pixel Breite meine unterunter-Tabelle tatsächlich hat? Im Tabellen-tag steht 100%...

    100% entspricht immer der vom Benutzer eingestellten Fenstergröße des Browsers - und damit weißt Du _gar_nichts_, u.U. kannst Du das nicht mal feststellen, wie z.B. in meinem Mozilla, da das untersagt ist. Mein Browser gehört mir!

    Gruß
    Joe alias Sepp

    1. WOW!!! Das sind SCHNELLE Antworten gewesen *freu*!

      Also diese marquee-Geschichte hatte entweder nur mit IE oder nur mit Netscape so richtig funktioniert... Jedenfalls war da so etwas, glaube ich. Und mit herumlaufenden Links habe ich das noch garnicht ausprobiert... gebe ich zu.

      "Mein Browser gehört mir" finde ich prinzipiell auch gut. Klingt schön. Heißt dann aber wohl auch, dass ich es vergessen kann. Hmm.

      Ich bin noch nicht zufrieden ;-) Vielleicht gibt es ja doch noch ne Möglichkeit mein Problem zu lösen, bevor ich das Fenster zwangsmaximiere oder die Tabellen auf mickrige 800x600 Auflösung ausrichte (mein Bildschirm hat 1280x1024), auch wenn das nicht immer schön ist.

  2. Hab zwar keine Hilfefür dein Problem, habs, um ehrlich zu sein, nicht mal gelesen ;-)
    Aber, WARUM denn diese ganzen Scheiss JavacriptMüllticker, wenn man auch <marquee> verwenden kann ?
    Dasist mit fast allen browsern kompatibel und auch fpür NICHT-JS-fähige Browser geeignet.

    1. Hi,

      Aber, WARUM denn diese ganzen Scheiss JavacriptMüllticker, wenn man auch <marquee> verwenden kann ?
      Dasist mit fast allen browsern kompatibel und auch fpür NICHT-JS-fähige Browser geeignet.

      ?

      MARQUEE läuft nur auf dem IE ohne Script. Wurde in Mozilla oder Opera JavaScript ausgeschaltet, war's das auch mit dem MARQUEE (und die Browser brechen den Text dann auch nicht mehr um :-().
      Ergo: Wenn schon Ticker, dann lieber JavaScript. Die sind *um einiges*
      flexibler und, richtig gemacht, rückwärts-kompatibler zu purem HTML.

      Gruß, Cybaer

      PS: Allen Ticker-Anfeindungen zum Trotz: Der DHTML-Ticker ist die *mit Abstand* am häufigsten gesuchte Funktion auf meiner Coding-Seite.

  3. Hallo!

    Wie kann ich per Javascript ermitteln, wieviele Pixel Breite meine unterunter-Tabelle tatsächlich hat? Im Tabellen-tag steht 100%...

    Mh, also ich hab ja von javascript keine Ahnung, aber um die Zeit bist vielleicht über jede Antwort glücklich. Was, wenn Du der Tabelle eine id bzw. eine Namen gibst und mit getElementByID auf die Eigenschaft width zugreifst?

    Gruß
    Viennamade

    1. Hallo!

      Was, wenn Du der Tabelle eine id bzw. eine Namen gibst und mit getElementByID auf die Eigenschaft width zugreifst?

      Nutzt ihm z.B. bei meinem Mozilla gar nichts, da durch meine Einstellungen verboten und damit nicht möglich

      Gruß
      Joe alias Sepp

      1. Moin!

        Was, wenn Du der Tabelle eine id bzw. eine Namen gibst und mit getElementByID auf die Eigenschaft width zugreifst?

        Nutzt ihm z.B. bei meinem Mozilla gar nichts, da durch meine Einstellungen verboten und damit nicht möglich

        Was denn für Einstellungen? Wieso verhindern die einen Zugriff auf style.width des jeweiligen Elements? Verwechselst du das nicht gerade mit dem screen-Objekt?

        - Sven Rautenberg

        --
        Among the maxims on Lord Naoshige's wall, there was this one: "Matters of great concern should be treated lightly."
        Master Ittei commented, "Matters of small concern should be treated seriously."
        (Hagakure: The Way of the Samurai)
        1. Moin!

          Was denn für Einstellungen? Wieso verhindern die einen Zugriff auf style.width des jeweiligen Elements? Verwechselst du das nicht gerade mit dem screen-Objekt?

          Ok, ok! Sorry!

          Aber deshalb weiss er noch lange nicht, ob das auch in mein Browser-Fenster passt

          Joe alias Sepp

    2. Dann gibt mir der Browser voller Stolz folgende Meldung:

      100%

      Damit bin ich dann so schlau, wie vorher... Aber danke für deine Antwort.

      Grüßle.

      1. Hio,

        Damit bin ich dann so schlau, wie vorher... Aber danke für deine Antwort.

        versuchs mal mit der Eigenschaft offsetWidth, anstatt von style.width

        gruss
        Thorsten

  4. Hallo,

    also verschachtelte Tabellen noch und nöcher.

    Das ist übel. Ich bin in dem Punkt zwar nicht so puristisch, daß ich
    jegliche Layouttabelle gleich als Teufelswerk ablehnen würde, aber zig
    ineinander verschachtelte Tabellen sollte man doch auf jeden Fall
    vermeiden.

    Wie kann ich per Javascript ermitteln, wieviele Pixel Breite meine
    unterunter-Tabelle tatsächlich hat? Im Tabellen-tag steht 100%...

    Die tatsächliche Breite eines Elements in Pixeln bekommst du m.E. bei
    allen neueren Browsern mit 'element.offsetWidth'.

    Gib also z.B. der Tabelle, um die es geht, eine id und ermittle die
    Breite dann so:

    if (document.getElementById) {
      breite = document.getElementById('id_der_tabelle').offsetWidth;
    }

    Wenn du die CSS-Eigenschaft 'width' des Tickers manipulierst, denke
    daran eine Maßeinheit anzuhängen. Das wird in Javascripten gerne
    vergessen. Also z.B.

    document.getElementById('id_des_tickers').style.width = breite+'px';

    Gruß, Jan

    1. Hallo,

      Innerhalb des Scriptes gibt es eine feste Breitenangabe in Pixeln,
      die die maximale Länge für die Laufschrift bestimmt.

      Warum änderst du nicht einfach im Script diese feste Angabe in px in
      eine relative um, bzw. läßt sie ganz weg und gibst dem Element per CSS
      ein margin/padding?

      Gruß, Jan

  5. hi,

    Auf meiner Seite läuft ein Newsticker in Javascript. [...]
    Der Lauftext sitzt in einer Tabelle, die wiederum innerhalb einer Tabelle sitzt, die wiederum... also verschachtelte Tabellen noch und nöcher.

    http://www.kommdesign.de/galerie/inhalte/ticker.htm

    scnr,
    wahsaga