2009-08-20 49 views
0

好吧,我知道,我不喜欢IE6比你做任何多。事实上,我可能比你更喜欢它。但是,我坚持下去。有没有办法一旦在IE6滚出视到了一个DIV固定头?

基本上我想要完全一样的行为作为quirksmode但在IE6“显示页面内容”功能。这意味着我有一个乍一看似乎相对定位的div。然后,当您滚动时,在div离开视图之前,它将变为固定位置。当您滚动回到顶部,股利不应该放置在窗口的顶部,它应该回到它是在页面的开始。

回答

1

是的 - 我做的一个项目,我保持我的立方体的工作同样的事情。您可以使用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容器中,实际上距离屏幕本身的顶部)。

+0

是否可以删除100,并与元素的当前位置更换呢? – Bob 2009-08-20 12:15:00

+0

当然,看看更新的代码。 – Pat 2009-08-20 15:06:37

+0

谢谢!这看起来不错 – Bob 2009-08-21 02:16:16

相关问题