Estoy trabajando en una versión móvil de mi sitio. Estoy utilizando las consultas de medios y CSS tanto como sea posible, pero también estoy usando algunos javascript para, por ejemplo, convertir mi navegación en una lista de colapso/expansión en dispositivos más pequeños para ahorrar espacio.iphone/ipad activando eventos de cambio de tamaño inesperados
Para manejar todo esto, estaba intentando usar el evento window.resize. Esto permite que la magia suceda en los navegadores de escritorio mientras se cambian de tamaño, pero obtengo cambios de tamaño en el iPad/iPhone cuando no los estoy esperando.
En los navegadores de escritorio, solo obtengo un cambio de tamaño si cambio el tamaño de la ventana. En navegadores móviles obtengo el evento de cambio de tamaño cuando cambio de orientación (esperado), pero también lo consigo cuando alterno para expandir/colapsar algo.
Aquí está un ejemplo sencillo:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>Resize test</title>
<style>
.box {height: 10000px; background: green; display: none;}
</style>
<script>
$(function(){
$(".opener").click(function(){
$(".box").slideToggle();
});
$(window).resize(function(){
alert("resized");
});
});
</script>
</head>
<body>
<a href="#" class="opener">Open/close me</a>
<div class="box"></div>
</body>
</html>
Al hacer clic en el enlace en un navegador de escritorio, ninguna alerta. Haga clic en el enlace en iPhone/iPad, recibirá la alerta. ¿Cual es el trato?
Hi @ rdoyle720. ¿Por qué no marcar como válida la respuesta @ 3tripe? –
@ rdoyle720 Me gustaría eso también :) – 3stripe