2010-12-27 4 views
0

Ich habe einige Größenänderung Code, aber es scheint nicht für ein Zoom-Ereignis ausgelöst werden. Ich hatte vorher einen Zoomcode-Trigger-Größenänderungscode und weiß ein wenig über Situationen, die bewirken, dass ein Zoom-Ereignis eine Größenänderung auslöst, jedoch möchte ich mehr Erläuterungen bekommen.Was ist der beste Weg, um ein Zoom-Ereignis automatisch ein Größenänderungsereignis auszulösen?

Was ist der beste Weg, um ein Zoom-Ereignis Ctrl ++ oder Strg + - zu erzwingen, um einen Onresize-Aufruf zu verursachen?

Danke, Grae

Antwort

0

Sie die Antwort nicht mögen. Ich schlage vor, dass Sie das nicht tun. Es gibt keine native Möglichkeit, es zu erkennen, wie in window.onzoom oder ähnlichem. Sie müssten einen Intervall-Timer einrichten und kontinuierlich DOM-Tests von Boxgrößen im Vergleich zu Schriftgrößen durchführen. Und neuere Browser zoomen anders als ältere Browser. IE6 erhöht nur die Schriftgröße, während FF3.5 die Größe der Seite vergrößert und auf die passende Größe umschreibt.

Die Empfehlung besteht darin, dem Browser zu erlauben, sich wie vorgesehen zu verhalten und Ihre CSS-Stile entsprechend mit EM-Tags für Größen einzurichten.

+0

Ich habe nicht über IE6 zu kümmern. –

+0

Ich denke, es gibt andere Tricks. Ich weiß, dass Sie manchmal einen Zoom erkennen können. Es ist so etwas wie wenn ein DIV in der Größe geändert wird, löst es ein Resize Event oder etwas ähnliches aus. –

+0

Ich meine Zoom löst manchmal ein Größenänderungsereignis aus, also muss ich genau herausfinden warum. –

-1

Sorry Leute, ich habe eine Lösung, die ich besser mag als jede von euch. Grundsätzlich erstellen Sie einen Wrapper div arround all Ihre HTML-Quelle.

< div style = "height: 100%; Breite: 100%" onresize = "youResizeCode()"> </div>

Es funktioniert gut für mich. Ich benutze es hauptsächlich für FF3 und IE8, ich bin mir nicht sicher, welche Browser damit arbeiten werden.

Grae

+0

Resize-Ereignisse werden nur auf Elemente in IE ausgelöst. Andere Browser verwenden nur das Fenster. Dies sollte nicht akzeptiert werden, da es nicht browserübergreifend funktioniert. Siehe http://jsfiddle.net/zachleat/kj5nK/ und http://msdn.microsoft.com/en-us/library/ie/ms536959(v=vs.85).aspx – zachleat

+0

Meine Methode funktioniert nur zum Einzoomen , ebenfalls. Beim Verkleinern muss die Größe des Wrapperdivs geändert werden, sodass kein Ereignis ausgelöst wird. Ich denke, ein Timeout-Intervall ist der beste Weg, um Dinge zu tun. –

Verwandte Themen