2 votos

CSS Zoom no funciona iPad OS (v13- último) Safari

He descubierto un error en Safari con el sistema operativo del iPad. El problema es que cuando hago zoom utilizando el atributo css zoom, safari está tomando el tamaño de la fuente de un elemento y está ampliando o reduciendo en función del nivel de zoom.

Ejemplo: Si tengo un elemento con font-size: 20px al 100% y el zoom al 50%, safari está haciendo que el font-size ahora sea de 40px manteniendo el elemento al 100% por lo tanto rompiendo mi diseño. Esto sólo ocurre en los dispositivos que ejecutan el sistema operativo del iPad. (Esto sucede en todos los niveles de zoom 50%, 60%, 70%, etc.)

¿Alguien tiene alguna información adicional sobre el sistema operativo del iPad que pueda ayudarme a resolver este problema? Ya he informado a Apple, pero hace tiempo que no tengo ninguna actualización de estado.

ENLACE A LA PRUEBA: http://alleetest.s3-website-us-east-1.amazonaws.com/

1voto

adam Puntos 41

Ya veo tu problema. Desafortunadamente, he notado que Apple ha roto varios aspectos de la representación de páginas web en iPadOS, dejando varias peculiaridades visuales menores que no existían en Safari 12 para iPad.

Aunque es muy molesto que hayan roto el Safari, por desgracia, tenemos que vivir con ello mientras tanto. Lo que yo haría es crear un script que aumente y disminuya el tamaño de los elementos, texto, bordes, etc. cuando se cambie el tamaño del "zoom". Hacer esto también daría soporte al navegador Firefox, ya que no tiene soporte para el zoom CSS.

Esta sugerencia puede no ser la ideal, dependiendo de lo que esté tratando de hacer, pero espero que esto ayude un poco.

Además, hay que tener en cuenta que la función de zoom integrada en el navegador Safari de iPadOS utilizando un teclado funcionará correctamente, pero no el zoom CSS.

0voto

leroyjenkinss24 Puntos 121

Solución:

function setTransformScale(scaleFactor) {
    if(!scaleFactor) scaleFactor = 1;

    let height = $(window).height()*(1/scaleFactor);
    let width = $(window).width()*(1/scaleFactor);

    $(".body-container").css({
        width: width+"px",
        height: height+"px",
        transform: `scale(${scaleFactor})`
    });
};

He eliminado completamente la propiedad CSS Zoom de mi sitio y he cambiado a la propiedad transform: scale(). Para contrarrestar el espaciado he añadido "transform-origin: top left" a mi archivo css y en javascript ejecuto mi función creada al dimensionar las páginas.

$(".body-container") es mi elemento div justo debajo de la etiqueta body que causa el efecto de zoom en toda mi página.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X