捕捉两列以纠正位置

时间:2011-05-03 00:28:19

标签: jquery html css

使用 Jquery 我使用.offset()方法定位两个100%页面高度的列,并简单地充当实际内容边缘的阴影。

我已应用于这些列的CSS是:

div#lshade,
div#rshade
{
    width: 60px;
    display: block;
    position: fixed;
    height: 100%;
}

div#lshade
{
    background: url(/_private/display/layout/lshade.png) repeat-y;
}

div#rshade
{
    background: url(/_private/display/layout/rshade.png) repeat-y;
}

这是我使用的JQuery:

function loaded()
{
    setInterval("fixShade()", 33);
}

function fixShade()
{
    var left = $("#lshade");
    var right = $("#rshade");

    var cont = $("#content").offset();

    left.offset({top: 0, left: cont.left});
    right.offset({top: 0, left: cont.left + 900});
}

这一切都按预期工作,直到我的页面内容变得足够长,需要滚动。页面滚动后,列随页面向上移动,即使它们的位置设置为固定。

我假设使用offset()会将此属性从fixed更改。

我的目标是让这两列始终捕捉到页面顶部和100%的页面高度(作为位置:固定;可以)。

我认为解决方案将是将位置设置为需要水平对齐的位置,并垂直对齐到您滚动到的位置(因此窗口的顶部)。

这是我目前正在处理的网站,如果它有帮助:http://cherishbeauty.businesscatalyst.com/treatments.html

1 个答案:

答案 0 :(得分:1)

偏移似乎只会使您的左侧或右侧着色元素高度。尝试

left.offset({top: 0, left: cont.left}).css("height",$(window).height());

left.offset({top: 0, left: cont.left}).css("height",$(document).height());

或最好的选择

left.offset({top: 0, left: cont.left}).css("height",$("#innerContent").height());

或者你需要获得另一个元素的高度。不确定那个是什么。也许是innerContent