JQuery:在 WebSphere Portal 7 主题中从页面底部 float 工具栏

标签 jquery css positioning offset viewport

我正在为 WebSphere Portal 7 开发一个基于 PageBuilder2 (csa2.theme) 的自定义主题。我正在使用 JQuery 1.7.1。 其中一个要求是有一个页脚(id 是 div#footer)和一个位于页脚顶部的帮助栏(class 是 div.footer.flotante)虽然页脚在视口(viewport)中,但它需要 float 在窗口底部,而页脚不在视口(viewport)中...有点像 Facebook 新时间轴工具栏(添加到 friend 等)或 Mashable 社交小部件,只有底部。

Scheme of what I want to do

以下是我使用 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 工具栏位置错误。

  1. 如何在呈现该内容后重新计算 dh 的值?
  2. 鉴于没有名为 offset().bottom 的属性,是否有一种方法可以临时“翻转倒置”文档以计算 offset().top 我的工具栏的值,从而无需知道 dh 的最终值?
  3. 对于我正在尝试的事情,您还有其他建议吗?

提前致谢。

最佳答案

我找到了问题的原因:它是具有负底部属性的 Logo 的绝对定位图像,因此在页脚下方创建了额外的垂直间距并增加了 dh值(value)。

关于JQuery:在 WebSphere Portal 7 主题中从页面底部 float 工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220784/

相关文章:

javascript - 使用 JS 或 JQuery,使用 jQuery 的 listselect.js 将选择中的所有内容从一个列表移动到 "selected"

javascript - jquery 搜索过滤器 - 如果搜索不匹配,选项将被隐藏,但 optgroup 仍显示,如何隐藏 optgroup

html - 位置固定和 webkit 溢出触摸问题 ios 7

html - 无法让网格区域填充垂直空间

css - 为什么这个 div 在另外两个嵌套的 div 之间? z-index 相关

ios - 动态UIButton定位?

css - 网站div定位,不使用 "top"如何定位div

javascript - 在 JavaScript 中按 ID 对 div 进行排序

javascript - 在 iframe 中打开healcode链接

javascript - 将照片样式设置为其所在元素的大小