2011-08-09 136 views

Respuesta

8

la siguiente función debe hacer lo que tiene, que funciona en todos los navegadores (con la única excepción de no disparar cuando Safari no está maximizada y cambia la resolución)

Se dispara sobre la ventana de redimensionamiento como así como la resolución cambia y también tiene un retraso para evitar múltiples llamadas mientras el usuario está redimensionando la ventana.

var resizeTimer; 

    //Event to handle resizing 
    $(window).resize(function() 
    { 
     clearTimeout(resizeTimer); 
     resizeTimer = setTimeout(Resized, 100); 
    }); 

    //Actual Resizing Event 
    function Resized() 
    { 
     //Your function goes here 
    }; 

Testing jsFiddle

+0

esto necesita jQuery, ¿verdad? –

+0

Estoy bastante seguro de que el evento se activará si la ventana se maximiza cuando ocurre el cambio de resolución, pero ¿se activará si la ventana no está maximizada y no cambia el tamaño? –

+0

@Jerome - usa jQuery –

0

Usar screen.width y screen.height para determinar la anchura y altura de la pantalla.

1

En lo que respecta a este artículo: https://developer.mozilla.org/en-US/docs/DOM/window.onresize

window.onresize = resize; 

function resize() 
{ 
    alert('window size changed'); 
} 

window.resize hace que sea muy sencillo.

+0

Entonces, ¿cuál es su pregunta? ? – Kninnug

+0

Es una respuesta. Para esta publicación, http://stackoverflow.com/questions/7000029/detect-window-resize-and-perform-function-with-jquery/16066164?noredirect=1#comment22930670_16066164 –

+0

Ahh, la primera vez que revisaba, me olvidé de que era una no respondas una pregunta. Ignora mi comentario anterior – Kninnug

1

Mi proposición. Primer HTML & CSS.

HTML

<div id="wrapper"> 
    <div id="div1"> 
     #div1 content 
    </div> 
    <div id="div2"> 
     #div2 content 
    </div> 
</div> 

CSS

div { 
    color: white; 
    margin: 20px; 
    padding: 5px 18px; 
    font: 700 16px/200% sans-serif; 
} 
#div1 { 
    background-color: #d00; 
} 
#div2 { 
    background-color: #27d; 
} 

Ahora el jQuery:

El documento listo única (https://jsfiddle.net/sz7aeo9j/)

<script> 
    $(document).ready(function() { 
     var divone = $('#div1')[0].outerHTML 
     var divtwo = $('#div2')[0].outerHTML 
     $('#div2,#div1').remove(); 
     if ($(window).width() < 640) { 
      $('#div1').remove(); 
      $('#wrapper').html(divtwo); 
     } 
     if ($(window).width() > 640) { 
      $('#div2').remove(); 
      $('#wrapper').html(divone); 
     } 
    }); 
</script> 

al redimensionar la ventana (https://jsfiddle.net/sz7aeo9j/1/)

<script> 
    $(document).ready(function() { 
     var divone = $('#div1')[0].outerHTML 
     var divtwo = $('#div2')[0].outerHTML 
     $('#div1').remove(); 
     $(window).resize(function() { 
      if ($(window).width() < 640) { 
       $('#div1').remove(); 
       $('#wrapper').html(divtwo); 
      } 
      if ($(window).width() > 640) { 
       $('#div2').remove(); 
       $('#wrapper').html(divone); 
      } 
     }); 
    }); 
</script> 
Cuestiones relacionadas