scrollTop与offsetTop研究 兼容IE8

虽然我是做后台出身的,但最近心血来潮越来越关注前台技术了^_^,前二天看了“司徒正美”先生的图片无缝滚动分析后,对于scrollTop和offsetTop这二个以前一直没搞太明白的属性研究了一番,大致弄明白了,贴在这里备份,测试代码如下:
<! doctype html >
< title > scrollTop study </ title >
ExpandedBlockStart.gifContractedBlock.gif
< style  type ="text/css" >
ExpandedSubBlockStart.gifContractedSubBlock.gif.outer
{}{
ExpandedSubBlockStart.gifContractedSubBlock.gif    position
:relative; /**//*为了兼容IE8,FF3.5,Chrome2,本例中如不加这一行,item2.offsetTop会以body为计算基准*/
    width
:100px;
    height
:100px;
    border
:15px solid #ccc;
    overflow
:hidden;
    line-height
:18px;
}


ExpandedSubBlockStart.gifContractedSubBlock.gif.item
{}{
    height
:60px;
}


ExpandedSubBlockStart.gifContractedSubBlock.gif.bgColorRed
{}{
    background-Color
:red;
}


ExpandedSubBlockStart.gifContractedSubBlock.gif.bgColorGreen
{}{
    background-Color
:green;
}

</ style >

< div  class ="outer"  id ="container" >
    container
    
< div  class ="item bgColorRed" > item1 </ div >
    
< div  class ="item bgColorGreen"  id ="item2" > item2 </ div >
</ div >
< br />
< button  id ="btnTest"   > Test </ button >   < span  id ="result" ></ span >

ExpandedBlockStart.gifContractedBlock.gif
< script  type ="text/javascript" >
    
var btn = document.getElementById("btnTest");
ExpandedSubBlockStart.gifContractedSubBlock.gif    btn.onclick 
= function(){
        
var outer =  document.getElementById("container");
        
var item2 = document.getElementById("item2");
        
var result = document.getElementById("result");
        outer.scrollTop 
++ ;        
        result.innerHTML 
= "container.scrollTop=" + outer.scrollTop + ",item2.offsetTop=" + item2.offsetTop;
    }

</ script >

代码很简单,一个100px的正方形div,border边框值为15px,overflow设置为hidden(隐藏),然后里面放了二个100*60的子div,显然60*2=120px,大于最外层容器的100px高度,所以会有一部分被截掉,为了更形象,二个子div上面还放置了一行文字,高度为18px,点击按钮后,最下面绿色子div的scrollTop递增加1(即位置不断升高,直至完全呈现出来)

为方便理解,还画了一个分析图:(值得注意的是offsetTop属性在ie8的非兼容模式下,还要加上Border的高度)

作者: 菩提树下的杨过
出处: http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/s7mmersupport/archive/2011/04/11/offsetTop.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值