Hi,
ich würde gerne auf die Schriftgrößenänderung reagieren.
Hintergrund:
Rechts neben der Überschrift soll ein Hintergrundbild angezeigt werden.
Dies besteht aus mehreren Einzelkästchen - darum möchte ich je nach vorhandenem Platz das Bild so positionieren, daß (wenn möglich) nur ganze Kästchen zu sehen sind.
Das ist an sich kein Problem.
Das Bild wird erstmal per CSS neben den Text positioniert - ggf. halt mit nur teilweise angezeigten Kästchen.
Per Javascript berechne ich onload und onresize die Position des Bildes neu, so daß immer nur ganze Kästchen zu sehen sind.
Der Platz für die Kästchen hängt aber natürlich auch noch von der Schriftgröße der Überschrift ab (natürlich in em definiert).
onload/onresize ist das kein Problem, da wird die jeweils aktuelle Schriftgröße berücksichtigt (die Breite des h1 wird ermittelt).
Aber wenn der User die Schriftgröße ändert, weiß ich nicht, wie ich darauf reagieren kann.
Im Internet Exploder löst eine Schriftgrößenänderung das onresize-Event aus - hier ist das also kein Problem.
(hab ich das wirklich grade geschrieben? "Kein Problem" und "Internet Exploder" in einem Satz, ohne daß eine Negation dazwischensteht? ;-) )
Aber im Opera und im Firefox wird dieses Event nur bei Fenstergrößenänderung ausgelöst.
Gibt es irgendein anderes Event, das in den beiden Browsern ausgelöst wird?
Wie sieht es in anderen Browsern (Safari/Konqueror, ...) aus?
Im Prinzip sieht mein Code so aus:
function calculateBackgroundPosition()
{
//hier die eigentliche Berechnung (die funktioniert, also hier irrelevant)
}
window.onload = calculateBackgroundPosition;
window.onresize = calculateBackgroundPosition;
Das Script wird im head eingebunden als externes Script - es ist ein Scriptfile, das auf allen Seiten der Domain sowieso eingebunden wird und bisher nur einen Framebrecher enthält. Wenn irgendwie möglich sollte es auch so bleiben, daß an den HTML-Dateien nichts geändert werden muß. Daher auch window.onload statt des onload-Attributs im body ...
Das einzige, was mir im Moment einfällt, wäre, die Berechnung per setIntervall alle Sekunde oder so durchzuführen, aber solche bruteforce-Methoden gefallen mir nicht ...
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.