Gibt es sowas wie onfontresize?
MudGuard
- javascript
0 Thomas J.S.0 MudGuard0 Andreas Lindig0 Siechfred0 MudGuard
0 Orlando
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
Hallo Andreas,
ich würde gerne auf die Schriftgrößenänderung reagieren.
Vielleicht hilft dir dies http://forum.de.selfhtml.org/archiv/1999_4/t07006.htm weiter?
Grüße
Thomas
Hi,
ich würde gerne auf die Schriftgrößenänderung reagieren.
Vielleicht hilft dir dies http://forum.de.selfhtml.org/archiv/1999_4/t07006.htm weiter?
Danke - aber hilft mir nicht. Ich will ja nicht wissen, wie groß die Schrift ist, ich will nur reagieren können, wenn der User die Schriftgröße ändert. Ob dann größere oder kleinere Schrift dargestellt wird, ist wurscht. Ich brauch das Event "User hat Schriftgröße verändert".
cu,
Andreas
Hallo Andreas,
Ich brauch das Event "User hat Schriftgröße verändert".
ist mir nicht bekannt. Aber Du kannst ja die dafür typischen Tastenkombis abfragen (shift + z.B.)
Gruß, Andreas
Hallo,
Ich brauch das Event "User hat Schriftgröße verändert".
ist mir nicht bekannt. Aber Du kannst ja die dafür typischen Tastenkombis abfragen (shift + z.B.)
und das Mausrad dazu! ;-)
Grüße
Thomas
ist mir nicht bekannt. Aber Du kannst ja die dafür typischen Tastenkombis abfragen (shift + z.B.)
und das Mausrad dazu! ;-)
stimmt. geht das eigentlich?
Gruß, Andreas
Tag Andreas.
und das Mausrad dazu! ;-)
stimmt. geht das eigentlich?
Soweit ich weiß nur im IE 6 mit onmousewheel.
Siechfred
Tag MudGuard.
Vielleicht hilft dir dies http://forum.de.selfhtml.org/archiv/1999_4/t07006.htm weiter?
Danke - aber hilft mir nicht. Ich will ja nicht wissen, wie groß die Schrift ist, ich will nur reagieren können, wenn der User die Schriftgröße ändert.
Ich habe das Archivposting nur überflogen, aber da es m.W. keinen speziellen Eventhandler für dein Vorhaben gibt, bleibt nur der umständliche Weg, onLoad die aktuelle Schriftgröße abzufragen und die entsprechenden Events (Taste/Maustaste gedrückt) umzubiegen und die dann eingestellte Größe abzufragen. Hat sich was geändert, wird das Bild neu positioniert.
Zu Risiken und Nebenwirkungen fragen Sie Bill Gates ;)
Siechfred
Hi,
Zu Risiken und Nebenwirkungen fragen Sie Bill Gates ;)
Ne - ausnahmsweise nicht, weil der IE ja bei font-Größenänderung onresize auslöst.
cu,
Andreas
Hi Andreas,
ich würde gerne auf die Schriftgrößenänderung reagieren.
das halte ich generell für unsinnig. Nutzer, die das machen, werden wohl auch einen Reload beherrschen. Ich ändere sehr oft die Schriftgröße und das in kleinen Schritten. Ständiges Neuladen wäre ziemlich nervig.
Rechts neben der Überschrift soll ein Hintergrundbild angezeigt werden.
Wenn’s allerdings um eine solch wichtige Information geht … ;-)
Grüße,
Roland
Hi,
ich würde gerne auf die Schriftgrößenänderung reagieren.
das halte ich generell für unsinnig. Nutzer, die das machen, werden wohl auch einen Reload beherrschen. Ich ändere sehr oft die Schriftgröße und das in kleinen Schritten. Ständiges Neuladen wäre ziemlich nervig.
Neuladen will ich ja gar nicht. Ich weiß nicht, wie Du darauf kommst, daß ich neu laden will.
Ich will nur ein Hintergrund-Bildchen neu positionieren, da es bei Schriftvergrößerung ggf. hinter die (Über-)Schrift kommt.
Und damit will ich den Usern eben das Neuladen ersparen.
cu,
Andreas
Hi Andreas,
Neuladen will ich ja gar nicht. Ich weiß nicht, wie Du darauf kommst, daß ich neu laden will.
willst du mir das etwa verbieten? ;-) window.onload hat mich zu der Annahme verleitet.
Ich will nur ein Hintergrund-Bildchen neu positionieren, da es bei Schriftvergrößerung ggf. hinter die (Über-)Schrift kommt.
Lässt sich das in diesem Fall per CSS nicht vermeiden?
Grüße,
Roland
Hi,
Neuladen will ich ja gar nicht. Ich weiß nicht, wie Du darauf kommst, daß ich neu laden will.
willst du mir das etwa verbieten? ;-) window.onload hat mich zu der Annahme verleitet.
Das onload dient dazu, beim Laden der Seite das Bildchen wie gewünscht zu positionieren.
Ich will nur ein Hintergrund-Bildchen neu positionieren, da es bei Schriftvergrößerung ggf. hinter die (Über-)Schrift kommt.
Lässt sich das in diesem Fall per CSS nicht vermeiden?
Nö. Je nach vorhandenem Platz wird onload/onresize das Bild 0 oder 100 oder 200 oder 300 oder 400 oder 500 Pixel links vom rechten Rand der Überschrift positioniert (so daß 0 bis 5 ganze Kästchen des Bildes sichtbar sind).
Die Position ist also ein Pixelwert, kein em-Wert.
cu,
Andreas
Hi Andreas,
Nö. Je nach vorhandenem Platz wird onload/onresize das Bild 0 oder 100 oder 200 oder 300 oder 400 oder 500 Pixel links vom rechten Rand der Überschrift positioniert (so daß 0 bis 5 ganze Kästchen des Bildes sichtbar sind).
eine andere Vorgangsweise wäre, entsprechend viele Elemente mit jeweils einem Kästchen als Hintergrundbild zu definieren und diese in einem weiteren Element zusammenzufassen, das per overflow:hidden abgeschnitten wird. Die Kästchen-Elemente ordnest du mit float darin nebeneinander an. Wird der Platz zu eng, bricht die Reihe um.
Die Position ist also ein Pixelwert, kein em-Wert.
Das wäre in dem Fall egal.
Grüße,
Roland
Hi,
eine andere Vorgangsweise wäre, entsprechend viele Elemente mit jeweils einem Kästchen als Hintergrundbild zu definieren und diese in einem weiteren Element zusammenzufassen, das per overflow:hidden abgeschnitten wird. Die Kästchen-Elemente ordnest du mit float darin nebeneinander an. Wird der Platz zu eng, bricht die Reihe um.
Dann hab ich aber im Dokument Elemente, die da gar nichts verloren haben - ist ja reine Dekoration, hat also in der Dokumentstruktur nichts verloren.
cu,
Andreas