Jquery无法获得隐藏页脚的outerHeight

时间:2015-08-22 17:51:18

标签: jquery html5 dom

我有一个页脚应该使用javascript函数自动显示,具体取决于它的outerHeight(),但它没有..调试我得到空值..

    <section class="z-index-1 pull-bottom-fixed full-width" data-pages="reveal-footer">

         <section>
            <div class="container">
             <dv class="row"></div>
             <dv class="row"></div>
           </div
         </section>

          <section>
            <div class="container">
              <div class="row"></div>
              <dv class="row"></div>
           </div>
          </section>

    </section>

这是揭示 - 页脚功能

    Pages.prototype.initRevealFooter = function() {
        var _elem = $('[data-pages="reveal-footer"]');
        setHeight();
        function setHeight(){
                var h = _elem.outerHeight();
                _elem.prev().css({
                     'margin-bottom':h
                })
        }
        $(window).resize(function(){
            setHeight();
        })
    }

当我检查_elem.outerHeight()时,我得到null ...

我使用的是最新的JQuery版本(1.11.3) 我读了关于outerHeight()的jQuery ......

更新

调整大小工作正常(我可以滚动到底部以查看页脚)在OS X上的FF和Chrome上但不在Safari上。

所以Safari不喜欢这段代码

Pages.prototype.initRevealFooter = function() {
    var _elem = $('[data-pages="reveal-footer"]');
    setHeight();
    function setHeight(){
            var h = _elem.outerHeight();
            _elem.prev().css({
                 'margin-bottom':h
            })
    }
    $(window).resize(function(){
        setHeight();
    })        
}

2 个答案:

答案 0 :(得分:0)

如果这是你在页面上唯一的代码,而不是@charlietfl评论的代码 - 如果元素没有内容或样式,则没有高度。

您应该发布更多代码。

查看此笔以获取有效的示例 - &gt; http://codepen.io/anon/pen/jPjjYg

CSS

[data-pages="reveal-footer"]{
  height: 10px;
  background-color: lime;
}

JS

 _g = jQuery('[data-pages="reveal-footer"]');
g.css({'border': '1px solid blue'});
var hh = g.outerHeight();  //returns 12

答案 1 :(得分:0)

在Chrome,FF和Safari中测试相同代码后发现了这个问题... 工作正常w FF和Chrome,但不适用于Safari

我修改了css ...在body标签中插入overflow:auto ...

 /*[1. Layouts] */
 html,
 body {
    height: 100%;
   overflow: auto;
 }

这解决了这个问题......现在可以显示页脚,html代码中的js代码也没有任何错误...只有CSS默认为溢出!不知道为什么Safari默认为否  和FF / Chrome默认为是