2012-03-16 42 views
13

Tôi có một mẫu có nhiều vị trí tuyệt đối, bây giờ div văn bản chính của tôi có chiều cao động và tôi cần chân trang động sau sau này.CSS đặt div 'top' với jquery từ div 'height'

Tôi đã cố gắng đặt trạng thái trên cùng của div chân trang với giá trị độ cao từ div văn bản.

<script type="text/javascript"> 
    $("#footer").top($("#text").height()); 
    </script> 

Thật không may, các công cụ Chrome Dev ném lỗi:

Uncaught TypeError: Object [object Object] has no method 'top' (anonymous function)

Vì vậy, bất kỳ ý tưởng hay giúp cho vấn đề của tôi?

Edit:

Vì vậy, tôi đã cố gắng

$('#footer').css('top', $('#text').outerHeight() + 'px'); 

và nó hoạt động tốt, là nó có thể để thêm một số px giá trị hàng đầu này?

Trả lời

17

Bạn sẽ cần phải thiết lập thuộc tính css 'đỉnh' trên div #footer, không gọi .top() trên bản thân div.

$("#footer").css('top', $("#text").height() + "px"); 

hoặc dọc theo những dòng

+0

mang lại cho tôi> Uncaught SyntaxError: Mã thông báo không mong muốn) –

+0

bạn có thể cần phải bật đơn vị trên phần phụ trợ của chiều cao() vì nó chỉ trả về biểu diễn số của giá trị. – dougajmcdonald

+0

nó là một vấn đề của tôi "jQuery (tài liệu). Đã có (chức năng ($) {" Tôi cố định nó –

0

Trình gỡ lỗi là chính xác, jQuery không trừu tượng phương thức top. Bạn thà sử dụng .css() như

$('#footer').css('top', $('#text').height()); 
+0

Này sẽ không thất bại nếu các 'tài sản css top' không phải là explicity set? – Blazemonger

+1

@ mblase75: jQuery (trình duyệt thực sự), sẽ chỉ tạo thuộc tính css nếu nó chưa được lấp đầy. Chính xác hơn, tất cả các thuộc tính css có sẵn bất cứ lúc nào, nó chỉ phụ thuộc vào việc các thuộc tính đó có giá trị hay không. – jAndy

+0

Tôi hiểu sai câu hỏi - tuy nhiên, nó có thể là giá trị chỉ ra (không có ở đây) biến chứng đó sẽ kết quả nếu cả hai 'top' và' dưới' css tài sản được thiết lập cùng một lúc. Nếu OP đang thao tác mã của người khác, thì thuộc tính 'bottom' sẽ được xóa rõ ràng để an toàn. – Blazemonger

4

Thay .top với .offset({top: somenumber})

http://api.jquery.com/offset/

+0

Điều này làm việc cho tôi. Tôi không chắc chắn nếu các phiên bản .css không thành công vì tôi đã có css trên phần tử nhưng, bất kể, điều này dường như sửa chữa nó. –

1

thử điều này:

$('#footer').style.css("top",$('#text').style.css("height")); 
+0

Đã không làm việc cho tôi – williamcarswell

1

tôi sẽ đề nghị:

<script type="text/javascript"> 
    jQuery(document).ready(function($){ 
     $('#footer').css('top', $('#text').outerHeight() + 'px'); 
    }); 
</script>