clientWidth
Justus
- javascript
0 suit0 Alex0 Cheatah0 clientHeight
Justus0 suit
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
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
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
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
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
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
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
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
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
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