使用 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
答案 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