Tengo el siguiente código JQuery:
$(document).ready(function () {
var $containerHeight = $(window).height();
if ($containerHeight <= 818) {
$('.footer').css({
position: 'static',
bottom: 'auto',
left: 'auto'
});
}
if ($containerHeight > 819) {
$('.footer').css({
position: 'absolute',
bottom: '3px',
left: '0px'
});
}
});
El único problema es que esto solo funciona cuando el navegador se carga por primera vez, quiero containerHeight
también que se verifique cuando cambien el tamaño de la ventana?
¿Algunas ideas?
$(window).resize(function(){...})
Respuestas:
Aquí hay un ejemplo usando jQuery, javascript y css para manejar eventos de cambio de tamaño.
(css si es su mejor apuesta si solo está estilizando cosas al cambiar el tamaño (consultas de medios))
http://jsfiddle.net/CoryDanielson/LAF4G/
css
javascript
jQuery
¿Cómo evito que mi código de cambio de tamaño se ejecute tan a menudo?
Este es el primer problema que notará al vincular para cambiar el tamaño. El código de cambio de tamaño se llama MUCHO cuando el usuario cambia el tamaño del navegador manualmente, y puede sentirse bastante extraño.
Para limitar la frecuencia con la que se llama a su código de cambio de tamaño, puede usar los métodos antirrebote o acelerador desde el subrayado y lowdash bibliotecas de .
debounce
solo ejecutará su código de cambio de tamaño X número de milisegundos después del ÚLTIMO evento de cambio de tamaño. Esto es ideal cuando solo desea llamar a su código de cambio de tamaño una vez, después de que el usuario haya terminado de cambiar el tamaño del navegador. Es bueno para actualizar gráficos, cuadros y diseños que pueden ser costosos para actualizar cada evento de cambio de tamaño.throttle
solo ejecutará su código de cambio de tamaño cada X número de milisegundos. Se "acelera" con qué frecuencia se llama el código. Esto no se usa con tanta frecuencia con los eventos de cambio de tamaño, pero vale la pena tenerlo en cuenta.Si no tiene subrayado o lowdash, puede implementar una solución similar usted mismo: JavaScript / JQuery: $ (ventana). ¿Cambiar el tamaño de cómo DESPUÉS de completar el cambio de tamaño?
fuente
Mueva su javascript a una función y luego vincule esa función para cambiar el tamaño de la ventana.
fuente
jQuery tiene un controlador de eventos de cambio de tamaño que puede adjuntar a la ventana, .resize () . Por lo tanto, si coloca
$(window).resize(function(){/* YOUR CODE HERE */})
su código, se ejecutará cada vez que se cambie el tamaño de la ventana.Entonces, lo que desea es ejecutar el código después de la primera carga de la página y cada vez que se cambie el tamaño de la ventana. Por lo tanto, debe extraer el código en su propia función y ejecutar esa función en ambas instancias.
Ver: evento de cambio de tamaño de la ventana del navegador cruzado - JavaScript / jQuery
fuente
$(function() { $(window).resize(positionFooter).triggerHandler('resize'); });
Prueba esta solución. Solo se dispara una vez que se carga la página y luego durante el cambio de tamaño de la ventana en predefinido
resizeDelay
.fuente
resizer();
justo después de configurar el intervalo. Y debido a quedoResize
se establece entrue
, se dispara cuando el documento está listo.resizeDelay
casodoResize
variable se establecetrue
. YdoResize
también se establece entrue
el$(window).resize()
. Entonces cambia el tamaño de la ventana, que se establecedoResize
entrue
y durante la próximaresizer()
función de verificación se llama.Dé un nombre a su función anónima y luego:
http://api.jquery.com/category/events/
fuente
puede usarlo también
fuente
Esto hará que su controlador de cambio de tamaño se active al cambiar el tamaño de la ventana y al preparar el documento. Por supuesto, puede adjuntar su controlador de cambio de tamaño fuera del controlador de documentos listos si desea
.trigger('resize')
ejecutar la carga de la página.ACTUALIZACIÓN : Aquí hay otra opción si no desea utilizar ninguna otra biblioteca de terceros.
Esta técnica agrega una clase específica a su elemento de destino para que tenga la ventaja de controlar el estilo solo a través de CSS (y evitar el estilo en línea).
También garantiza que la clase solo se agregue o elimine cuando se active el punto de umbral real y no en cada cambio de tamaño. Se disparará solo en un punto de umbral: cuando la altura cambia de <= 818 a> 819 o viceversa y no varias veces dentro de cada región. No le preocupa ningún cambio de ancho .
Como ejemplo, puede tener lo siguiente como algunas de sus reglas CSS:
fuente
Utilizar este:
fuente
Puedes unirte
resize
usando.resize()
y ejecutar su código cuando se cambia el tamaño del navegador. También debe agregar unaelse
condición a suif
declaración para que sus valores CSS alternen entre lo antiguo y lo nuevo, en lugar de simplemente establecer lo nuevo.fuente