Foros del Web » Programando para Internet » Javascript »

Problema responsivo window.matchMedia

Estas en el tema de Problema responsivo window.matchMedia en el foro de Javascript en Foros del Web. Hola. Estoy utilizando javascript para eliminar y añadir elementos en pantallas de bajas resoluciones con window.matchMedia. Ejemplo: Código: if (window.matchMedia("(max-width: 399px)").matches) { document.getElementById("ter").remove(); } Funciona ...
  #1 (permalink)  
Antiguo 30/08/2016, 03:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Problema responsivo window.matchMedia

Hola.

Estoy utilizando javascript para eliminar y añadir elementos en pantallas de bajas resoluciones con window.matchMedia.

Ejemplo:

Código:
if (window.matchMedia("(max-width: 399px)").matches) {
document.getElementById("ter").remove();
}
Funciona perfectamente y sin problemas.

Pero el problema viene cuando el usuario rota la pantalla. Imaginemos un móvil con 400px (aproximadamente) de ancho en visión vertical. Funcionaría el script que he puesto, pero al rotar la pantalla a su anchura horizontal, naturalmente mayor de 400px, el elemento #ter sigue eliminado, porque habría que refrescar el navegador para que vuelva a leerse el script y no aplicar al orden de eliminación.

No es tema que se pueda dejar pasar, porque hay un cierto número de elementos afectados por esta fórmula, tanto para eliminar como para introducir en cada página.

¿Hay alguna forma de corregir esto?

Gracias.
  #2 (permalink)  
Antiguo 30/08/2016, 05:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Problema responsivo window.matchMedia

He encontrado esto, que funciona:

Código:
window.onorientationchange = function() { location.reload() };
Ahora tengo un problema que debe ser de fácil solución pero que no soy capaz de solventar.

Si lo pongo en el html, funciona y refresca:

<script>
window.onorientationchange = function() { location.reload() };
</script>

Pero si lo meto en el archivo .js donde está todo lo demás, no.

Lo meto tal cual:

Código:
window.onorientationchange = function() { location.reload() };
¿Tiene que estar necesariamente en el archivo html? ¿o es que lo estoy poniendo mal en el .js?

Gracias.
  #3 (permalink)  
Antiguo 30/08/2016, 05:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Problema responsivo window.matchMedia

Hola de nuevo.

onresize tiene mejor respuesta en navegadores.

Código:
window.onresize = function() { location.reload() };
  #4 (permalink)  
Antiguo 30/08/2016, 11:42
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema responsivo window.matchMedia

y por qué no usas media queries de css?? para este caso es más adecuado

edito.- usa la función multimedia orientation
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Última edición por IsaBelM; 30/08/2016 a las 12:34

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:47.