2013-02-26 56 views
7

tôi cần định vị phần tử div ở giữa màn hình. Tôi tìm thấy một mã đơn giản dưới đây, nhưng tôi cần trung tâm của màn hình ACTUAL, không phải "tổng chiều cao/2" của trang!Cách đặt một phần tử div ở giữa màn hình ACTUAL? (JQuery)

đây là mã Jquery tập trung một phần tử chứ không phải màn hình thực;

jQuery.fn.center = function() { 
this.css("position","absolute"); 
this.css("top", ($(window).height() - this.height())/2+$(window).scrollTop() + "px"); 
this.css("left", ($(window).width() - this.width())/2+$(window).scrollLeft() + "px"); 
return this;} 

như tôi đã nói, tôi cần phải tính toán các kích thước màn hình thực tế (như 1366 * 768 hoặc bất cứ người dùng thay đổi kích cỡ trình duyệt của họ) và vị trí của phần tử tại trung tâm của màn hình. vì vậy, nếu tôi di chuyển xuống trang, luôn luôn div trung tâm nên ở trung tâm, một lần nữa.

+0

[Câu trả lời này] (http://stackoverflow.com/questions/504052/determining-position-of-the-browser-window-in-javascript) có thể giúp bạn đi đúng hướng. Đó là một chủ đề khá cũ vì vậy tôi chắc chắn có một số thư viện tốt đẹp kết thúc tốt đẹp các cuộc gọi khác nhau cần thiết cho các trình duyệt khác nhau – Matthew

+0

@Matt Có một bình luận nói rằng IE bây giờ chấp nhận screenX và screenY. Vì vậy, bây giờ trình duyệt chéo của nó tương thích. :) –

Trả lời

10

Nếu bạn đang okay với việc sử dụng fixed vị thay vì absolute, bạn có thể sử dụng một cái gì đó như sau:

jQuery.fn.center = function() 
{ 
    this.css("position","fixed"); 
    this.css("top", ($(window).height()/2) - (this.outerHeight()/2)); 
    this.css("left", ($(window).width()/2) - (this.outerWidth()/2)); 
    return this; 
} 

$('#myDiv').center(); 
$(window).resize(function(){ 
    $('#myDiv').center(); 
}); 

Demo: http://jsfiddle.net/GoranMottram/D4BwA/1/

+1

điều này đã khắc phục được sự cố của tôi, cảm ơn bạn! –

0

TRY NÀY:

var width=$("#div").css("width"); 
var half=width/2; 
$("#div").css("marginLeft","-"+half+"px"); 

Thay đổi #div với chọn của bạn.

+0

Một lần nữa ... Nếu bạn đọc kỹ, câu hỏi là về trung tâm VERTICAL, và bạn đang đề xuất định tâm HORIZONTAL. – Havok

1

nó works..take lặn này nó như #sample

cho phong cách css của nó như

#sample{ 
margin-left:auto; 
margin-right:auto; 
width:200px;//your wish 
} 

nghĩ nó hoạt động ..

+0

Nếu bạn đọc kỹ, câu hỏi là về trung tâm VERTICAL và bạn đang đề xuất định tâm HORIZONTAL. – Havok

+0

và sẽ không hoạt động với các yếu tố cố định –

Các vấn đề liên quan