IE css expression中获取scrollTop属性
今天在做一个浮动效果,由于IE6-不支持position:fixed,所以就对IE6-浏览器可以考虑使用IE专有css行为expression+position:absolute来实现。下面的代码全部在IE6-浏览器下测试。
HTML结构
<div class="ieexp">浮动层</div>
开始定义样式如下
.ieexp{top:expression(document.body.scrollTop);left:0px;}
结果发现浮动层在IE下固定在了顶部,不会随着页面的滚动而移动。修改为下面css查看在expression中document.body.scrollTop的值
.ieexp{top:expression(document.title=document.body.scrollTop);left:0px;}
发现在expression中document.body.scrollTop尽然是0,一直没变过。再次更改css样式如下
.ieexp{top:expression(document.title=this.offsetParent.scrollTop+'|'+this.offsetParent.tagName);left:0px;}
页面标题栏显示实际的页面的滚动scrollTop属性|HTML,this.offsetParent到底是什么可以参考 offsetparent ,设置为
.ieexp{top:expression(this.offsetParent.scrollTop);left:0px;}
这次没问题了,在IE6可以滚动。
但是奇怪为什么直接设置成document.body.scrollTop不能实时获取到滚动头的距离呢。后面在网上找到一个示例,使用了eval动态执行代码后可以返回scrollTop属性,晕了。。
.ieexp{top:expression(eval(document.body.scrollTop));left:0px;}
还有一个细节需要注意,如果增加了xhtml申明,就是document.compatMode=='CSS1Compat'时,需要将document.body.scrollTop修改为document.documentElement.scrollTop。
加支付宝好友偷能量挖...
原创文章,转载请注明出处:IE css expression中获取scrollTop属性