Erkennen Seite zoom ändern mit jQuery in Safari
Ich habe ein problem mit Safari auf eine web-Anwendung mit einem " position:fixed element. Wenn die Seite vergrößert ist (kleiner 100%) Dinge gehen kaputt und müssten behoben werden, indem eine Funktion aufrufen. So möchte ich erkennen, die der Nutzer Zoomen. Ich fand diese jQueryPlug-in vor einer Weile:
http://mlntn.com/2008/12/11/javascript-jquery-zoom-event-plugin/
http://mlntn.com/demos/jquery-zoom/
Erkennt er Tastatur und Maus-Ereignisse können dazu führen, dass eine Seite die Zoomstufe ändern. Fair genug. Es funktioniert auf aktuellen FF und IE, aber nicht auf Safari. Irgendwelche Ideen, was könnte getan werden, um zu tun, etwas anderes in aktuellen WebKit-Browser?
InformationsquelleAutor C.O. | 2011-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht eine direkte Kopie der diese Frage da, die sich mit Mobile Safari, aber der gleichen Lösung arbeiten.
Darüber hinaus sollten Sie in der Lage sein zu verwenden, die
onresize
event-handler (oder jQuery.resize()
) zu prüfen:Ich habe gerade getestet, diese Theorie auf Chrome und ich scheinen immer ein Verhältnis ziemlich nah an 1, ob ich mich vergrößert auf 100%, 67% oder 175%. on a side note, jQuery
$(window).width()
gibt denselben Wert zurück wiedocument.documentElement.clientWidth
, in der Erwägung, dasswindow.innerWidth
ist in der Regel etwas größer (obwohl nicht genug, um zu reflektieren, ist der zoom-Wert).Fenster.innerWidth ist nicht genau die Breite, wenn angezeigt, die scrollbar. Sie haben zu tun Fenster.innerWidth - 17 zu 1, wenn es kein zoom
Das wird nicht funktionieren, wenn der Benutzer die zoom-out-1 mit den Fingern
In diesem Fall, prüfen Sie nicht, wenn Sie genau gleich (===) aber überprüfen, ob Ihre Differenz ist kleiner als 1 (Math.abs(element.scrollTop + element.Höhe - Kind.innerHeight) < 1)) Das sollte für die meisten Fälle
InformationsquelleAutor newtron
Gibt es ein hübsches plugin gebaut von yonran , kann die Erkennung. Hier ist sein bisher beantwortet Frage auf StackOverflow. Es funktioniert für die meisten Browser. Die Anwendung ist so einfach wie diese:
Demo
InformationsquelleAutor Starx
Lösung funktioniert nicht auf einem mac
InformationsquelleAutor Dinnu Buddy