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属性

评论(0)Web开发网
阅读(603)喜欢(0)JavaScript/Ajax开发技巧