javascript - 元素不会垂直粘在屏幕中间

标签 javascript jquery html css

我一直在尝试使用 JQuery 创建一个模式弹出窗口,但不知何故我无法正确地集中我的元素(关键点是元素始终是集中的,无论您的屏幕分辨率如何)。下面的jsfiddle写的是我想让元素垂直居中的代码(因为水平居中可以用CSS来完成。)

HTML: 测试

CSS:

.ex_event_frame {
    left: 39px;
    margin-left: auto;
    margin-right: auto;
    width: 300px;
    height: 300px;
    overflow: auto;
    background: #2e3030;
    color: #ffffff;
    position: absolute;
    z-index: 101;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 14px;
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, .4);
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, .4);
    -box-shadow: 0 0 10px rgba(0, 0, 0, .4);
    border: 8px solid #105f6b;
}

Javascript:

$(function () {
    var offset = 0,
        viewportHeight = $(window).height(),
        $myDialog = $('#ev-entry');
    $myDialog.css('top', (offset + (viewportHeight / 2)) - ($myDialog.Height() / 2));
});

这是我创建的 fiddle :http://jsfiddle.net/8v9k9/2/

我的想法已经用完了,希望我能尽快听到答案。 提前致谢!

最佳答案

DEMO

$(function () {
    $(window).resize(function(){
    var offset = 0,
        viewportHeight = $(window).height(),
        $myDialog = $('#ev-entry');
    console.log(viewportHeight + " "+$myDialog.height() )
    $myDialog.css('top', (offset + (viewportHeight / 2)) - ($myDialog.height() / 2));
    }).resize();
});

  • .height() 而不是 .Height()
  • 它在 $(window).resize() 中,因此它也会在调整大小时进行调整

关于javascript - 元素不会垂直粘在屏幕中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143601/

相关文章:

javascript - 如何在 sequelize 中编写查询以查找与 user_id 关联的所有待办事项

javascript - 为什么我的 jest.mock 中的 Promise reject() 会转到 then() 而不是 catch()?

javascript - 将图像移动到 div 中,并让文字环绕

html - 如何更改表格标题颜色和文本颜色?

html - 将两列(其中第二列,有两个元素)与基线对齐

javascript - 发送函数通过ajax将数据发送到php文件

javascript - 哪个是angular js和nodejs中最好的报告工具

javascript document.write 与 jQuery ReplaceWith

javascript - 某些属性在 IE 中不起作用

javascript - 日期输入的 min 属性的实时绑定(bind)