我正在为 WebSphere Portal 7 开发一个基于 PageBuilder2 (csa2.theme) 的自定义主题。我正在使用 JQuery 1.7.1。
其中一个要求是有一个页脚(id 是 div#footer
)和一个位于页脚顶部的帮助栏(class 是 div.footer.flotante
)虽然页脚在视口(viewport)中,但它需要 float 在窗口底部,而页脚不在视口(viewport)中...有点像 Facebook 新时间轴工具栏(添加到 friend 等)或 Mashable 社交小部件,只有底部。
以下是我使用 JQuery 完成的片段:
$(window).scroll(function (event) {
var barra = $('div.footer.flotante');
var offset = barra.offset();
var bh = barra.height();
var h = offset.top;
var wh = $(window).height();
var dh = $(document).height();
var y = $(this).scrollTop();
var x = dh - y - wh;
var hf = $("div#footer").height();
if (x > hf) {
barra.addClass('fixed');
} else {
barra.removeClass('fixed');
}
});
这些是我正在使用的 CSS 样式:
div.footer.flotante{
background:url(../images/footerone.png) repeat-x;
width:100%;
}
div.footer.flotante.fixed{
position: fixed;
bottom: 0px;
z-index: 1;
}
使用该代码,我必须在具有静态内容的 html 页面的情况下 float 我的工具栏(因此 dh
的值是常量)。我的问题是,这是一个主题开发,预计会将内容动态加载到文档正文中,将 dh
值增加到未知数量的像素。在这种情况下,x
的值计算采用 dh
的初始值,结果导致 float 工具栏位置错误。
- 如何在呈现该内容后重新计算
dh
的值? - 鉴于没有名为
offset().bottom
的属性,是否有一种方法可以临时“翻转倒置”文档以计算offset().top
我的工具栏的值,从而无需知道dh
的最终值? - 对于我正在尝试的事情,您还有其他建议吗?
提前致谢。
最佳答案
我找到了问题的原因:它是具有负底部属性的 Logo 的绝对定位图像,因此在页脚下方创建了额外的垂直间距并增加了 dh
值(value)。
关于JQuery:在 WebSphere Portal 7 主题中从页面底部 float 工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220784/