2012-07-06 57 views
5

Tôi đã xem xét nhiều câu hỏi về chủ đề này và dường như không thể tìm ra điều gì sai với mã của tôi. Mọi sự trợ giúp sẽ rất được trân trọng!Tự động thay đổi kích thước phần tử với kích thước cửa sổ jquery

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

Tôi đang cố gắng đổi kích thướC#element thành cùng chiều cao và chiều rộng làm cửa sổ nếu cửa sổ được thay đổi kích thước.

+1

này làm việc cho tôi. – Tyrsius

+1

Xem câu đố này: http://jsfiddle.net/aBHRp/1/ – Tyrsius

+0

Giúp tôi, http://stackoverflow.com/questions/33360273/window-disptachevent-resizing-issue –

Trả lời

13

Về .innerWidth(), từ docs:

Phương pháp này không áp dụng đối với cửa sổ và tài liệu đối tượng; đối với , thay vào đó hãy sử dụng .width().

Có cùng một số note cho .innerHeight().

Vì vậy, bạn cần phải sử dụng .width().height():

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

cảm ơn phản hồi. Nó thú vị bởi vì nếu tôi cảnh báo (newwidth) tôi có được chiều rộng chính xác. –

+1

Cả hai chiều rộng và innerWidth làm việc cho tôi. – Tyrsius

+0

@Tyrsius Có thể có sự cố tương thích với nhiều trình duyệt. – Engineer

1

thử điều này:

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

cảm ơn bạn, đây là một cách khác mà bây giờ làm việc cho tôi! –

+0

@iight bạn được chào đón :) – undefined

1

Bạn luôn có thể chỉ cần sử dụng CSS:

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

downvote? điều này cũng giống như những gì Op có trong mã của họ, ngoại trừ không có jQuery. –

1

Trong đồng bằng javascript bạn có thể làm điều này:

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); 
    });​ 

cả công trình đối với tôi

update

$(window).resize(function(){ 
var newwidth = $(window).innerWidth(); 
var newheight = $(window).innerHeight();  
$("#element").height(newheight).width(newwidth); 
    });​ 
Các vấn đề liên quan