如何使用jquery将我的div元素设置为屏幕的中心

时间:2010-03-20 02:20:53

标签: jquery

那么如何设置左侧和顶部..(即使我滚动滚动条)

感谢

7 个答案:

答案 0 :(得分:2)

机器小精灵和Stefan Kendall都非常接近,但两者都不完整,所以你只需要将每个组合起来(机器小精灵不考虑滚动条而Setfan没有考虑div本身的高度和宽度):

假设你的div的id是“myDiv”

$('#myDiv').css('position','fixed');
$('#myDiv').css("left", ($(window).width()/2-$('#myDiv').width()/2) + "px");
$('#myDiv').css("top", ($(window).height()/2-$('#myDiv').height()/2) + "px"));

您可能还需要将div的css设置为固定高度和宽度,并将其显示设置为“block”。你也可以用JQuery做到这一点。

此外,您可以将所有这些组合成一个长字符串。

答案 1 :(得分:1)

您应该能够获取@ wag2639的代码,并将其放入@machine elf建议的函数表单中,然后设置窗口滚动处理程序,以便在用户滚动页面时对象保持居中。

$(window).scroll(function () { 
   $("#your_obj").center();
});

答案 2 :(得分:1)

这个答案不是jQuery,但是我看到了一个CSS技巧,你可以在外部元素上设置position:relative; left:-50%并将内部元素上的反向position:relative; left:50%设置为居中。我通常更喜欢尽可能使用CSS来完成这些任务。

有关详细信息,请参阅http://www.pmob.co.uk/pob/centred-float.htm

答案 3 :(得分:0)

如果你需要死亡中心......

$('#myDiv').css('position','absolute');
$('#myDiv').css("left", ($(window).width()/2-$('#myDiv').width()/2) + "px");
$('#myDiv').css("top", ($(window).height()/2-$('#myDiv').height()/2) + "px"));

这样的事情应该有用。这都是未经测试的。你也想把它与窗口调整大小联系起来。

答案 4 :(得分:0)

看起来应该这样做:Center element plugin

这个问题也有一些答案:CSS: Center a float:left element based on screen width?

这个其他jQuery技巧列表也有答案(#17):20 Top jQuery tips & tricks for jQuery programmers

答案 5 :(得分:0)

我不确定你的意思,但是如果你想在滚动时使用固定元素,请使用CSS position: fixed;(你可以在$('#myDiv').css('position','fixed'); 的jQ中应用,然后设置top和left)或者见:

What is the simplest jQuery way to have a 'position:fixed' (always at top) div?

答案 6 :(得分:0)

jQuery.fn.center = function () {
    var w = $(window);
    this.css("position","fixed");
    this.css("top",w.height()/2-this.height()/2 + "px");
    this.css("left",w.width()/2-this.width()/2  + "px");
    return this;
}
$("#your_obj").center();