2011-07-03 34 views
11

Tôi đang cố đặt chiều cao của div thành 30% chiều cao của chế độ xem và tôi rất muốn chia tỷ lệ chiều cao của khung nhìn khi thay đổi.Đặt chiều cao DIV động dựa trên chiều cao khung nhìn

Tôi đã cố gắng thiết lập chiều cao tối thiểu: 30%; chiều cao: 30% nhưng không hoạt động.

Tôi đã xem xét chiều cao của JQuery(); nhưng tôi không biết bắt đầu như thế nào.

Cảm ơn.

Trả lời

26
function thirty_pc() { 
    var height = $(window).height(); 
    var thirtypc = (30 * height)/100; 
    thirtypc = parseInt(thirtypc) + 'px'; 
    $("div").css('height',thirtypc); 
} 

$(document).ready(function() { 
    thirty_pc(); 
    $(window).bind('resize', thirty_pc); 
}); 
+0

Cảm ơn công việc ... Câu trả lời của Liam được chấp nhận. Tôi không thể làm cho nó để làm việc mặc dù: http://jsfiddle.net/QqwCM/1/ – elbatron

+1

Nó sẽ không làm việc trong jsfiddle vì nó chạy trong iframe, nếu bạn đặt mã đó vào một tập tin .html với bao gồm nó hoạt động tốt. Đặt nó thành $ (window) .height() trong định nghĩa hàm thirty_pc (như đã thay đổi ở trên) để hỗ trợ toàn trình duyệt chéo. –

+0

Cảm ơn Liam, nó hoạt động! – elbatron

18

này về cơ bản là câu trả lời Liam Bailey, nhưng với một thirty_pc() mà nên cả hai nhanh hơn và chính xác hơn:

function thirty_pc() { 
    $("div").css('height', '' + Math.round(.3 * window.height())); 
} 

$(document).ready(function() { 
    thirty_pc(); 
    $(window).bind('resize', thirty_pc); 
}); 

Nếu bạn thích nó, xin vui lòng vẫn chấp nhận Liam, nhưng tôi upvote. :)

+0

Oh và tôi đã tạo một bình luận mới không phải là bình luận bởi vì tôi không thể viết nhiều lời bình luận. Tôi không cố lấy cắp tín dụng của bất kỳ ai ở đây ... –

+0

Nên là '$ (cửa sổ) .height();' ??? (và trong câu trả lời khác nữa) – bbg

+0

Rõ ràng việc tính toán tỷ lệ phần trăm có thể được cô đặc thành cuộc gọi phương thức $ .css, tôi đã làm theo cách tôi đã làm bởi vì nó dễ dàng hơn cho một newbie để xem những gì đang được thực hiện và làm thế nào, tôi không có chuyên gia về sự khác biệt giữa parseInt và Math.Round về tốc độ, nhưng tôi nghĩ rằng sự khác biệt là ít hơn đáng lo ngại về. Và @bbg không cần phải là $ (cửa sổ) .height() vì phần tử cửa sổ tồn tại trong javascript và không phải là jQuery cụ thể. –

0
window.onresize=function(){ 
    $("#selectedDiv").height(($(window).height()*.3)); 
} 
+0

Câu trả lời của bạn khác với câu trả lời được chấp nhận như thế nào? –

+0

Chỉ cần đăng như thế nào tôi làm điều đó với ít hơn – nathan

0

Cái này hoạt động 100% cho chiều cao khung nhìn của bất kỳ div, phần nào có lớp này sử dụng Jquery. Sử dụng chức năng bổ sung để điều chỉnh chiều cao đến 30% hiện tại là 100%, vui lòng thăng hạng nếu bạn thích.

function thirty_pc() { 
    $(".introduction").css({'height':($(window).height())+'px'}); 
} 

$(document).ready(function() { 
    thirty_pc(); 
    $(window).bind('resize', thirty_pc); 
}); 
Các vấn đề liên quan