Justus: clientWidth

Hallo alle zusammen!

Ich habe folgendes Problem:
Ich verteile auf einer Seite per Zufall über den gesamten Bildschirm Elemente.
Dazu nutze ich diesen Code:

  
if (document.all)  
    {  
    document.write('#post_' + i + '{position:absolute;left:' +  
    ((document.body.clientWidth - 430) * Math.random()) + 'px;top:' +  
    ((document.body.clientWidth - 230) * Math.random()) + 'px;}');  
    }  
    else  
    {  
    document.write('#post_' + i + '{position:absolute;left:' +  
    ((window.innerWidth - 430) * Math.random()) + 'px;top:' +  
    ((window.innerHeight - 230) * Math.random()) + 'px;}');  
    }  

Ich schreibe also dynamisch CSS-Code ans Ende der Datei.
Im FF klappt alles super, nur der IE schreibt die Elemente erst hin und hat dadurch eine grössere Höhe (weil mit Scrollbalken).
Die Elemente sollen aber nur im sichtbaren Bereich verteilt werden.
Hat jemand eine Idee?
Bin dankbar für jeden Hilfe

Tschau!
Justus

  1. Ich verteile auf einer Seite per Zufall über den gesamten Bildschirm Elemente.

    im viewport des browsers hoffe ich doch - es gibt nix, was ich mehr hasse, als  wenn jemand meinen bildschirm verschmiert oder noch schlimmer: mit seinen drecksgriffeln das schöne helle gehäuse schmutzig macht

    Hat jemand eine Idee?

    schreib kein dynamisches css sondern gib den elementen direkt entsprechende eigenschaften über das http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften@title=style-objekt

    1. schreib kein dynamisches css sondern gib den elementen direkt entsprechende eigenschaften über das http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften@title=style-objekt

      dann kenne ich doch die Grösse des Bildschirms nicht und mache dein schönes helles Gehäuse schmutzig ;-)

      nochmal: die  Elemente werden ohne CSS untereinander dargestellt, so dass man scrollen muss.
      Jetzt möchte ich die Höhe und die Breite des Fensters auslesen und Bekomme im IE den Wert mit Scrollbalken, also deutlich mehr als die sichtbare Höhe.

      Tschau!
      Justus

  2. Ist nur mal so eine Idee, aber warum erstellst du nicht ein div mit "display:none;" und lässt deine css da rein schreiben, somit bleibt der Inhalt da, wird aber nicht gezeigt und reserviert keinen platz.

    Gruss

  3. Hi,

    Ich schreibe also dynamisch CSS-Code ans Ende der Datei.

    da hat er (in Form eines <style>-Elementes) nichts verloren.

    Im FF klappt alles super,

    Firefox scheint hier die bessere Fehlerkorrektur zu haben. Wirf das Firefox vor, nicht dem IE.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Hallo Cheatah

      Ich schreibe also dynamisch CSS-Code ans Ende der Datei.

      da hat er (in Form eines <style>-Elementes) nichts verloren.

      Ja, stimmt. Aber in den head kann ich es auch nicht nehmen, da dort das body-element noch nicht vorhanden ist.
      Und mit allen anderen Angaben (screen, outerHeight) bekomme ich nur die Gesamtbreite inkl. Frames, Taskleiste etc.

      Hier mal der Link (temporär):
      http://www.maergwyhrdich.de.vu/pinnwand/

      Tschau!
      Justus

      1. Hi,

        Ja, stimmt. Aber in den head kann ich es auch nicht nehmen, da dort das body-element noch nicht vorhanden ist.

        niemand zwingt Dich, ausgerechnet document.write() zu verwenden. Und nur bei dieser Variante, Code zu erzeugen, bist Du von der Position abhängig, an der der Code ausgeführt wird.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. niemand zwingt Dich, ausgerechnet document.write() zu verwenden. Und nur bei dieser Variante, Code zu erzeugen, bist Du von der Position abhängig, an der der Code ausgeführt wird.

          genau darum hab ich schon erwähnt, dass das style-objekt dafür gedacht ist, "echtes" html bzw css ins dokument zu schreiben ist überhaupt nicht notwendig

  4. Guten Tag nochmal!

    mit ein bissschen überlegen gings dann doch:
    Den IE im standardkonformen Modus arbeiten lassen und statt

      
    document.body.clientHeight  
    document.documentElement.clientHeight  
    
    

    eigesetzt.
    Und siehe da: es funktioniert (ausser, dass das CSS noch am ende steht)

    Danke für die Tipps!

    bis zum nächsten Mal
    Justus

    1. Und siehe da: es funktioniert (ausser, dass das CSS noch am ende steht)

      es sieht aus wie gewünscht in fehlertolleranten browsern - aber funktionieren tuts nicht