Utilizando el maximum-scale
y minimum-scale
para detener el zoom Don' Realmente funciona porque le quita la capacidad al usuario para acercarse. Eso es realmente una mala idea, ya que hace que sus usuarios con malos ojos enojado de que su sitio web no zoom, mientras que otros sitios web hacen ...
Probé los tiempos de espera y todo tipo de Javascript de fantasía, entonces me encontré esto: https://github.com/scottjehl/iOS-Orientationchange-Fix
a través de esta pregunta relacionada: How do I reset the scale/zoom of a web app on an orientation change on the iPhone?
en ese puesto, Andrew Ashbacher publicó un enlace al código escrito por Scott Jehl:
/*! A fix for the iOS orientationchange zoom bug. Script by @scottjehl, rebound by @wilto.MIT License.*/(function(m){if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1)){return}var l=m.document;if(!l.querySelector){return}var n=l.querySelector("meta[name=viewport]"),a=n&&n.getAttribute("content"),k=a+",maximum-scale=1",d=a+",maximum-scale=10",g=true,j,i,h,c;if(!n){return}function f(){n.setAttribute("content",d);g=true}function b(){n.setAttribute("content",k);g=false}function e(o){c=o.accelerationIncludingGravity;j=Math.abs(c.x);i=Math.abs(c.y);h=Math.abs(c.z);if(!m.orientation&&(j>7||((h>6&&i<8||h<8&&i>6)&&j>5))){if(g){b()}}else{if(!g){f()}}}m.addEventListener("orientationchange",f,false);m.addEventListener("devicemotion",e,false)})(this);
eso es una soluc ion envuelto muy bien en un IIFE por lo que no tiene que preocuparse por cuestiones de espacio de nombres.
¡Solo tiene que colocarlo en su script (no en document.ready()
si está usando jQuery) y viola!
Todo lo que hace es deshabilitar el zoom en devicemotion
eventos que indican que orientationchange
es inminente. Es la mejor solución que he visto porque realmente funciona y no desactiva el zoom.
EDITAR: este enfoque no siempre es confiable, especialmente cuando se sostiene el ipad en un ángulo. Además, no creo que este evento esté disponible para gen ipads
que acaba de ejecutar algunas pruebas rudimentarias y la después de maravillas trabajado para mí: '' – Bitmanic
la escala inicial hizo el truco para mí también - en el iPad. – cbuck12000
Esta es una buena solución para lo que siento es un error en el safari móvil. La metaetiqueta original de clamp es la forma en que normalmente configuro mis sitios. Sospecho que hay algo en el DOM en safari que no se comporta como se esperaba en algunos sitios para interferir con el ancho de página que finalmente causa este problema. – ghostfly