mmofacts.com

[JS] Effiziente Höhe abfragen

gepostet vor 18 Jahre, 5 Monate von Moogly
Hallo,
habe mich schonmal wegen meinem Div-Layer Problem im Forum gemeldet:
Div-Layer Problem [Fortgeschrittener Bereich].
Die Lösung dort klappt leider nur für Mozilla und Opera, bzw. für den IE nicht. Die darunter geschrieben Browserweiche habe ich auch nich korrekt zum Laufen gebracht.
Nun meine Frage:
Ist es möglich mittels Javascript, die tatsächliche Höhe der Seite abzufragen? (Bildschrim-WindowsLeiste-Toolbars etc..=Effiziente Höhe)
Und diese Höhe dann als Pixel umzurechnen und einem Divlayer dann diese Pixelhöhe zu geben?
Oder habt ihr noch andere Ideen wie ich das in dem oberen Post gepostete Problem lösen kann?
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von Kaiser Nero
[quote="Moogly"]Oder habt ihr noch andere Ideen wie ich das in dem oberen Post gepostete Problem lösen kann?
Du könntest Prozent-Angaben verwenden. (Wenn ich mich nicht irre Funktioniert das auch mit divs - sagt bescheid wenns nicht geht).
Ansonsten gibts da auch noch Angaben die dir das zurückgeben... ich editiere es wenn ich es wiederfinde.
mfg
gepostet vor 18 Jahre, 5 Monate von Moogly
@KaiserNero: Naja, habe es probiert, dem unteren Div in meinem Problemfall die Höhe 100% zu geben, aber da nutzt er nicht einfach 100% des restlichen verbleibenden Platzes aus, sondern er erstellt ein DIV dass die komplette Höhe von Bildschirm hat. Aber mein Div muss 100%-124px haben.
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von Drezil
per js das div dynamisch auf window.width bzw. window.height-124 setzen? (ka, ob das geht, aber wäre nen ansatz).
Das dürfte sich dann nicht mit overflow:auto; beissen ..
musst mal ausprobieren
gepostet vor 18 Jahre, 5 Monate von Moogly

document.getElementById('div').style.height=window.height-124;

Meinst du so?
EDIT: Geht leider nicht!
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von knalli
Zeig doch bitte mal ein Praxisbeispiel, für den Opera/Firefox. Weil entweder schnall ich das nicht oder wir reden aneinander vorbei..
gepostet vor 18 Jahre, 5 Monate von Moogly
Mhm, Praxisbeispiel hab ich jetzt keins per Hand. Aber ich erläuter es nochmal genau:
Ich habe ein
Menu-DIV:
height: 124px;
width: 100%;
und nun will ich drunter ein DIV haben das den restlichen platz ausfüllt und der Überschuss einfach mittels overflow:auto; in scrollbars anzeigt.
Im Firefox und Opera geht das mit deiner Lösung, nur im IE werden mit deiner Lösung keine horizontalen Scrollbars angezeigt und die vertikale Scrollbar geht über den restlichen Bildschirm hinaus
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von Drezil
wird so nicht klappen befürchte ich ..
window.height ist afik nen sting der form 21534px. also musste den erst mit substring bearbeiten, nbeu casten und dann umrechnen und das px wieder anhängen..
außerdem würde ich document.getElementById('div').style.height nehmen..

tmpTop = Math.abs(window.height.substr(0,window.height.length-2))-124;
document.getElementByID('div').style.height = tmpTop+'px';
document.getElementByID('div').style.width = window.width;
Hab ich nciht getestet.. (Nutze ich aber so ähnlich bei meinem rechtsklick-menu - funzt selbst im IE)
gepostet vor 18 Jahre, 5 Monate von Moogly
JavascriptDebugger sagt dass window.height nicht definiert ist
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von zufall_
var hoehe=document.body.clientHeight;
das funzt in IE, Opera, Firefox und Netscape sowie einigen anderen. ein offenes problem bleibt eine grössenänderung des fensters, welche sich aber vorbei an jeglichen standarts realisieren lässt.
Demo ClientHeight
gepostet vor 18 Jahre, 5 Monate von Moogly
Klasse, das geht!
Wie baue ich nun das um:
gepostet vor 18 Jahre, 5 Monate von Klaus
dürfte doch auch ohne die conditional comments gehen.
if(document.body.clientHeight)

hoehe = document.body.clientHeight;
else
hoehe = ....
gepostet vor 18 Jahre, 5 Monate von Moogly
Nein, das ganze brauch ich für was anderes
Für Stylesheets die nur wenn der IE benutzt wird, geladen werden sollen.
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von Klaus
Dann lade doch deine normale CSS-Datei und frag per JS ob der IE da läuft. Wenn ja kannst du über das DOM die URL des Style Sheets ändern.
gepostet vor 18 Jahre, 5 Monate von Moogly
Naja, das IE Stylesheet ist eigentlich mehr eine Erweiterung des normalen Stylesheet, deshalb wäre sowas wie
gepostet vor 18 Jahre, 5 Monate von knalli
Sofer der Hack für den IE7 nicht notwendig ist.. man soll ja niemals nie sagen und unwissentlich irgendwas aus Foren kopieren
Ich hab mich heute in der äußerst interessten Java-Vorlesung auch mal drangesetzt.. also im IE6 wird das echt nichts.. wäre da mit meinem Latein auch am Ende.
gepostet vor 18 Jahre, 5 Monate von knalli
Original von Moogly
@knalli: www.zion-networx.de/dev/clientheight.html das geht nicht im IE6?
Gruß
Moo

Abgesehen, das ein unschöner weißer Balken auftritt, klappt es.
Das war aber jetzt auch die JavaScript-Lösung? Ich würde es ja dennoch zum Brechen ohne JS versuchen.. wenn es ginge
gepostet vor 18 Jahre, 5 Monate von Moogly
Könntest mal nen Screen machen? Habe leider nur den 7ner drauf.
Naja, eine "ohne-js" Lösung wäre perfekt, aber wenns nicht klappt, dann muss es wohl so sein.
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von Klaus
Bitte...

gepostet vor 18 Jahre, 5 Monate von Moogly
Mhm, seltsam, wie kommt den der Balken da rechts zu stande ?
gepostet vor 18 Jahre, 5 Monate von Moogly
Okay, dann lass ich das einfach so, erstmal Danke für eure super Hilfe
Gruß
Moo
gepostet vor 18 Jahre, 5 Monate von zufall_
jep, da ist das box-modell von IE schuld. du kannst aber für die breite "clientwidth" verwenden, dann sollte es hinhauen.
ohne javascript sehe ich keine chance für dein vorhaben (wenn es in allen browsern funktionieren soll).

Auf diese Diskussion antworten