jquery - 获取 HTML 元素的高度 jQuery

标签 jquery html height

我为我的应用程序创建了一个漂亮的小模态消息窗口,但我似乎找不到注入(inject)到叠加层中的容器的高度。

function load_shipping_message (title, message) {
   var left = (($(window).width() / 2) - 300) + 'px';
   var height = $(document).height();
   var overlay = $('<div id="overlay" style="display:none;height:'+height+'px;"></div>').appendTo($('body'));
   var atc = $('<div class="atc-container" style="width:600px;"></div>').appendTo($('#overlay'));
   var mess = $('<div class="atc-msg"><div class="success">'+title+'</div><p>'+message+'</p><p class="clearfix"><a class="button" style="float:right;"><span>Close</span></p></div>');
   atc.html(mess);
   var top = (($(window).height() / 2) - (atc.height() / 2)) + 'px';
   atc.css ({
      'top': top,
      'left': left  
   });
   overlay.fadeIn('slow', function () {
      overlay.click (function() {
         overlay.fadeOut ('slow', function () {
            overlay.remove();   
         });    
      });
   });
}

在上面,atc.height() 的值始终返回 0,即使它包含内容。

除此之外它工作得很好,它只是将消息框的顶部设置为视口(viewport)的中点,因为 atc.height() 始终为零。只是想让它正确居中,盒子的高度根据内容的长度明显不同。

也许是因为叠加层被隐藏了?

谢谢。

-文斯

最佳答案

是的,如果它的父级被隐藏,它将显示 0。尝试将覆盖层移出用户 View ,margin-top: -10000px 或类似的东西而不是不显示,以便 DOM 仍然渲染它,即使用户看不到它。

关于jquery - 获取 HTML 元素的高度 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235620/

相关文章:

javascript - 未捕获的类型错误 : undefined is not a function - typeahead. js

javascript - 如何创建自定义 CSS3 加载圈?

javascript - 表单提交到 _blank 后如何刷新表单页面?

php - 输入当前登录的用户到表单

html - <a> 比它的 <img> child 高

html - 最小高度 :100% won't apply on a nested div

ios - 如何使用 Monotouch 获取行高?

jquery - 如何使用 html、css 和 jquery 创建模态框?

c# - 根据 WebMethod 中提供的条件从 WebMethod 返回值

javascript - 从 HTML 标记的数据属性传递对象时的 jQuery extend()