javascript - 使用 jQuery 动态地垂直和水平居中 div

标签 javascript jquery html css

我需要将一个名为 ".box" 的 div 垂直和水平居中里面<body></body> .它包含一个 <h1> , 就这样。将来,它可能包含一个<img>。 .

我尝试了很多技巧来做到这一点,但不幸的是它并不奏效......

所以我发现了这个话题:Centering a div vertically & horizontally using jQuery jQuery 的解决方案。但它并不完美,因为 div 停留在屏幕的左侧,如您所见:http://www.arcadmedia.com/

所以我正在寻找解决方案(在 jQuery 或 CSS 中,但对我来说没有任何效果)。

我认为这样的解决方案:http://jsfiddle.net/pqDQB/都不是最好的,jQ 可以做得更好。

我只是在使用这段代码:

$(function() {
$('.box').css({
    'position' : 'absolute',
    'left' : '50%',
    'top' : '50%',
    'margin-left' : -$('.box').outerWidth()/2,
    'margin-top' : -$('.box').outerHeight()/2
    });
});

真不知道是哪里出了问题。

编辑: 该框必须动态适应其内容!

最佳答案

这将动态计算并将 .box 定位在屏幕的中心。您还可以在 resizerotate 事件上调用此函数。

$(updateBoxDimension);
$(window).on('resize', updateBoxDimension);

function updateBoxDimension() {
    var $box = $('.box');

    // To center the box
    var boxLeft = ($(window).width()) / 2 - ($box.width() / 2),
        boxTop = ($(window).height()) / 2 - ($box.height() / 2);

    $box.css({
        left: boxLeft,
        top: boxTop
    });
}

演示:https://jsfiddle.net/tusharj/a5Lpeoux/1/

关于javascript - 使用 jQuery 动态地垂直和水平居中 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167895/

相关文章:

javascript - 使用ajax将html加载到Datatable子行中

javascript - jquery .serialize() 不包含序列化字符串中的选择列表选定值

javascript - Bulma Steps 扩展没有 "step"

javascript - Meteor App Deploy,但页面空白 : ServiceConfiguration is undefined

javascript - 如何从 MVC 项目中的每个表行获取每个值?

javascript - 带有自定义 header 的 AJAX 文件下载

javascript - 在使用 get() 检索选择后使用 jQuery 确定所选选项

javascript - JS/Jquery 魔法线在页面刷新时不起作用

javascript - 语音识别 Safari

javascript - 从 TinyMCE 中删除 onSubmit 事件 Hook