onresize und dann die Objekte anpassen
Joe
- design/layout
Hallo zusammen
auf meiner Seite steht im Mittelpunkt ein iframe mit einer Linksammlung und oben ein Menüband.
Die Seite soll stets die Größe des iframes anpassen und dieses auch stets im Mittelpunkt der Seite halten.
Doch leider funktioniert das nicht immer und das schon gar nicht im ie beim zoomen.
Der Code dafür lautet:
top.document.getElementById("DatenBereich").style.marginTop = (-1*(top.DatenHeight + top.document.getElementById("TRKennung").clientHeight + top.document.getElementById('TRAuswahl').clientHeight + top.document.getElementById('TRMarker').clientHeight + ((top.BIndex != 0) * 10)) / 2) - top.document.getElementById('MenueBand').clientHeight + "px"
was in der Funktion erstellt wird welche auch weiteres auf der Seite einrichtet und anschließend die Funktion startet welche die Darstellung einrichtet und auch bei onresize gestartet wird:
var SiteHeight = top.document.getElementsByName('Hintergrund')[top.BIndex * (top.BIndex > -1)].offsetHeight - top.document.getElementById("MenueBand").clientHeight - 60 - top.document.getElementById("MenueBand").offsetTop
if (SiteHeight < top.DatenHeight + top.document.getElementById("TRKennung").clientHeight - top.document.getElementById('TRAuswahl').clientHeight - top.document.getElementById('TRMarker').clientHeight + ((top.BIndex != 0) * 10))
{
top.document.getElementById("DatenFrame").style.width = top.DatenWidth + ((top.BIndex != 0) * 25) + "px"
top.document.getElementById("DatenFrame").style.height = SiteHeight - top.document.getElementById("TRKennung").clientHeight - top.document.getElementById('TRAuswahl').clientHeight - top.document.getElementById('TRMarker').clientHeight - ((top.BIndex != 0) * 10) + "px"
top.document.getElementById("SubFrame").style.height = SiteHeight - top.document.getElementById("TRKennung").clientHeight - top.document.getElementById('TRAuswahl').clientHeight - top.document.getElementById('TRMarker').clientHeight - ((top.BIndex != 0) * 10) + "px"
top.document.getElementById("DatenBereich").style.marginTop = Math.round(-1 * SiteHeight / 2) - top.document.getElementById("MenueBand").clientHeight + "px"
}
else
{
top.document.getElementById("DatenFrame").style.width = top.DatenWidth + "px"
top.document.getElementById("DatenFrame").style.height = top.DatenHeight + "px"
top.document.getElementById("SubFrame").style.height = top.DatenHeight + "px"
}
Doch startet im ie oftmals garnix, so dass ich nicht weis wo ich onresize reinschreiben soll. Und dies auf jeden Fall nicht beim rein und wieder heraus zoomen.
Also wohin muss ich bitte onresize hinschreiben und was könnte bitte falsch sein, so dass gerne auch Objekte übereinander stehen?
Für weitere Fragen stehe ich gerne zur Verfügung und fände es genial wenn man mir hierbei helfen könnte.
Danke Euer Joe
Hi,
kannst du die Größe des IFrames nicht einfach über CSS angeben?
In %, so dass sie sich der Viewportgröße anpasst?
Oder habe ich dein Problem falsch verstanden?
~dave
Hallo
es geht ja darum dass die Größe des iframes an die Größe dessen Inhalts angepasst wird. Ist aber nicht genügend Platz auf der Seite für das iframe, soll dieses den Umständen entsprechend angepasst werden.
Damit die Position nicht jedes Mal neu berechnet werden muss, dachte ich das iframe mit top:58% zu positionieren und dann per margin-top in die Mitte der Seite zu positionieren. Und je nach dem wieviel Platz noch vorhanden ist muss dann ggf alles entsprechend angepasst werden.
Ersteinmal wird die Seite eingerichtet und dann entsprechend angepasst. Doch geschieht beim zoommen im ie nix und oftmals stehen auch Objekte übereinander/verdecken sich. Als ob eines der Elemente nicht mit eingerechnet worden seien.
Danke Gruß Joe
@@Joe:
nuqneH
es geht ja darum dass die Größe des iframes an die Größe dessen Inhalts angepasst wird.
Wird das schon von irgendeinem* Browser unterstützt?
Qapla'
* kleines i, kleines e
@@Joe:
nuqneH
auf meiner Seite steht im Mittelpunkt ein iframe mit einer Linksammlung und oben ein Menüband.
Warum ein Iframe? Warum bindest du die Linksammlung nicht ins Dokument ein?
Qapla'