好吧,我知道,我不喜欢IE6比你做任何多。事实上,我可能比你更喜欢它。但是,我坚持下去。有没有办法一旦在IE6滚出视到了一个DIV固定头?
基本上我想要完全一样的行为作为quirksmode但在IE6“显示页面内容”功能。这意味着我有一个乍一看似乎相对定位的div。然后,当您滚动时,在div离开视图之前,它将变为固定位置。当您滚动回到顶部,股利不应该放置在窗口的顶部,它应该回到它是在页面的开始。
好吧,我知道,我不喜欢IE6比你做任何多。事实上,我可能比你更喜欢它。但是,我坚持下去。有没有办法一旦在IE6滚出视到了一个DIV固定头?
基本上我想要完全一样的行为作为quirksmode但在IE6“显示页面内容”功能。这意味着我有一个乍一看似乎相对定位的div。然后,当您滚动时,在div离开视图之前,它将变为固定位置。当您滚动回到顶部,股利不应该放置在窗口的顶部,它应该回到它是在页面的开始。
是的 - 我做的一个项目,我保持我的立方体的工作同样的事情。您可以使用CSS表达式和位置固定的黑客在IE6只有样式表得到它的工作:
/* The background-attachment: fixed smooths out the IE scrolling */
body {
background: url(foo.gif) fixed;
}
/* Adjust the 100 to whatever height you want
your container to start being fixed position at */
#fixedElement {
position: absolute;
left: 0;
top: expression(documentElement.scrollTop > 100 ? documentElement.scrollTop : 100);
}
注意上面documentElement.scrollTop是如果IE6在标准模式。如果您处于怪癖模式,则需要将其更改为document.body.scrollTop。
编辑:使用滚动的元素
的当前位置。如果你想让它充满活力和使用元素(上述表达式摆脱100)的当前位置,你可以做它通过测试元素的立场是正确的,在您想要滚动到开始的门槛:
HTML
<div id="startScroll"></div>
<div id="fixedElement">
Fixed scrolling content
</div>
CSS
#fixedElement{
position: expression(document.getElementById('startScroll').offsetTop < documentElement.scrollTop ? "absolute" : "static");
top: expression(documentElement.scrollTop);
}
你不能#fixedElement本身测试的原因是因为一旦它开始被固定的位置,你失去了你想要滚动到停止和启动阈值。
此外,#startScroll.offsetTop将相对于其包含的父项,因此您可能需要添加一个常数来考虑这一点(即说它在#content容器中,实际上距离屏幕本身的顶部)。
是否可以删除100,并与元素的当前位置更换呢? – Bob 2009-08-20 12:15:00
当然,看看更新的代码。 – Pat 2009-08-20 15:06:37
谢谢!这看起来不错 – Bob 2009-08-21 02:16:16