2012-07-06 12 views
5

Ho esaminato molte domande su questo argomento e non riesco a scoprire cosa c'è di sbagliato nel mio codice. Qualsiasi aiuto sarebbe molto apprezzato!Ridimensiona dinamicamente elemento con dimensioni della finestra jquery

$(window).resize(function(){ 
    var newwidth = $(window).innerWidth(); 
    var newheight = $(window).innerHeight();  
    $("#element").height(newheight).width(newwidth); 
     }); 

Sto cercando di ridimensionare #element alla stessa altezza e larghezza della finestra, se la finestra viene ridimensionata.

+1

Questo funziona per me. – Tyrsius

+1

Vedi questo violino: http://jsfiddle.net/aBHRp/1/ – Tyrsius

+0

Aiutami, http://stackoverflow.com/questions/33360273/window-disptachevent-resizing-issue –

risposta

13

Chi .innerWidth(), da docs:

Questo metodo non è applicabile alle finestre e documenti oggetti; per , utilizzare invece .width().

C'è lo stesso note per .innerHeight() anche.

Quindi è necessario utilizzare .width() e .height():

$(window).resize(function(){ 
    var newwidth = $(window).width(); 
    var newheight = $(window).height();  
    $("#element").height(newheight).width(newwidth); 
}); 
+0

grazie per la risposta. È interessante perché se allerta (newwidth) ottengo la larghezza corretta. –

+1

Sia width che innerWidth funzionano per me. – Tyrsius

+0

@Tyrsius Forse c'è un problema di compatibilità tra browser. – Engineer

1

provare questo:

$(window).resize(function(){ 
    var newwidth = $(window).width(); 
    var newheight = $(window).height();  
    $("#element").css({"height": newheight, "width": newwidth }); 
}); 
+1

grazie, questo è un altro modo che ora ha funzionato per me! –

+0

@iight siete i benvenuti :) – undefined

1

puoi sempre usare i CSS:

#element {width:100%; height:100%; position:fixed; } 
+0

downvote? questo fa la stessa cosa che Op ha nel loro codice, tranne senza jQuery. –

1

In pianura JavaScript si può fare this:

var viewportwidth; 
    var viewportheight; 

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight 

    if (typeof window.innerWidth != 'undefined') 
    { 
     viewportwidth = window.innerWidth, 
     viewportheight = window.innerHeight 
    } 

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document) 

    else if (typeof document.documentElement != 'undefined' 
    && typeof document.documentElement.clientWidth != 
    'undefined' && document.documentElement.clientWidth != 0) 
    { 
     viewportwidth = document.documentElement.clientWidth, 
     viewportheight = document.documentElement.clientHeight 
    } 

    // older versions of IE 

    else 
    { 
     viewportwidth = document.getElementsByTagName('body')[0].clientWidth, 
     viewportheight = document.getElementsByTagName('body')[0].clientHeight 
    } 
    var mydiv = document.getElementById("element"); 
    mydiv.style.height=viewportheight'px'; 
    mydiv.style.width=viewportwidth+'px'; 
1

jsFiddle

$(window).resize(function(){ 
var newwidth = $(window).width(); 
var newheight = $(window).height();  
$("#element").height(newheight).width(newwidth); 
    });​ 

entrambe le opere per me

update

$(window).resize(function(){ 
var newwidth = $(window).innerWidth(); 
var newheight = $(window).innerHeight();  
$("#element").height(newheight).width(newwidth); 
    });​ 
Problemi correlati