开发者

How do I center a DIV in the exact center of a page using jQuery?

I need to center a DIV in the exact center of a page using jquery. My CSS style for the DIV is as follows:

#page-content #center-box{
 position:absolute;
 width:400px;
 height:500px;
 background:#C0C0C0;
 border:1px solid #000;
 }

and my jQuery for centering is as follows:

windowheight = $(window).height();
windowwidth = $(window).width();
pagecenterW = windowwidth/2;
pagecenterH = windowheight/2;
$("div#page-conte开发者_开发问答nt div#center-box")
    .css({top: pagecenterH-250 + 'px', left: pagecenterW-200 + 'px'});

This code does not invoke any action on my page when refreshed. What am I doing wrong?


Try this: Working Example

Make sure you don't have any styles on #page-content that are constraining center-box and try putting your jquery code in the document ready event.

/*CSS*/
#center-box{
 position:absolute;
 width:400px;
 height:500px;
 background:#C0C0C0;
 border:1px solid #000;
 }

/*js*/
$(document).ready(function(){
  var windowheight = $(window).height();
  var windowwidth = $(window).width();
  var pagecenterW = windowwidth/2;
  var pagecenterH = windowheight/2;
  $("div#center-box")
      .css({top: pagecenterH-250 + 'px', left: pagecenterW-200 + 'px'});
});

/*html*/
<body>
  <div id="center-box">

  </div>
</body>


Id start with removing the + 'px' or add round brackets around pagecenterH-250 and pagecenterW-200.

What you are doing there is int + int - string.


Using absolute, the box position does not change on window resize (landscape to portrait for example). Use fixed instead. See jQuery center element to viewport using center plugin for a basic example.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜