使用JQuery基于scrollHeight调整元素

时间:2009-06-05 01:24:15

标签: javascript jquery

这是我到目前为止所拥有的:

    function loadOff(){
     $(document).ready(function(){
        $("#eLoader").ajaxStop(function(){
             $(this).hide();
             $("#eventsContent").show();
             var h = document.body.scrollHeight;
             $("#bodyBackground").css("height",h+100+"px");
             $("#sidePanel1").css("height",h-105+100+"px");
             $("#bottom").css("top",h+100+"px");
         });
      });
   }

这是一个JQuery ajax函数的回调函数,基本上就是当所有ajax完成时.ajaxStop()它会隐藏加载器然后显示内容。

我遇到的问题是调整bodyBackground,sidePanel和bottom以适应内容。我不关心它在这一点上有弹性和收缩的短内容,我只是想根据内容长度扩展到正确的位置。

所有div都绝对定位。函数中的数字只是为了便于解释而分解。 -105是该元素的offsetTop,+ 100是内容结尾和元素之间的边距。

如果有更好,更有效的方法来实现这一结果,请告诉你。

感谢。

1 个答案:

答案 0 :(得分:4)

根据你的代码,你唯一应该看到的是#sidePanel1的前105px。这是你的意图吗? (h =窗口的底部,根据您的代码。)

坚持使用JQuery模式,您将使用

var h = $(window).height();

也许你正在寻找这个而不是浏览器窗口的高度?它将获得内容元素的高度。

$("#eventsContent").outerHeight();