scrollTop与offsetTop研究

虽然我是做后台出身的,但最近心血来潮越来越关注前台技术了^_^,前二天看了“司徒正美”先生的图片无缝滚动分析后,对于scrollTop和offsetTop这二个以前一直没搞太明白的属性研究了一番,大致弄明白了,贴在这里备份,测试代码如下:

<!doctype html>
<title>scrollTop study</title>
<style type="text/css">
.outer{}{
    position:relative; /**//*为了兼容IE8,FF3.5,Chrome2,本例中如不加这一行,item2.offsetTop会以body为计算基准*/
    width:100px;
    height:100px;
    border:15px solid #ccc;
    overflow:hidden;
    line-height:18px;
}

.item{}{
    height:60px;
}

.bgColorRed{}{
    background-Color:red;
}

.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>

<script type="text/javascript">
    var btn = document.getElementById("btnTest");
    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的高度)

时间: 2024-09-29 09:00:58

scrollTop与offsetTop研究的相关文章

js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版_javascript技巧

网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offsetWidth   (包括边线的宽);网页可见区域高: document.body.offsetHeight  (包括边线的宽);网页正文全文宽: document.body.scrollWidth;网页正文全文高: document.body.scrollHeight;网页被卷去的高: documen

网页对联广告代码效果大全

对联|对联广告|网页 现在很多网站广告做的如火如荼,现在我就来介绍一下常见的对联浮动广告效果的代码使用方法,介绍的这种效果,在1024*768分辨率下正常显示,在800*600的分辨率下可以自动隐藏,以免遮住页面影响访问者浏览内容,下面就是实现效果所需代码:   var delta=0.015    var collection;    function floaters() {        this.items    = [];        this.addItem    = functi

左右漂浮的广告代码

广告 左右漂浮的广告代码   <script language="javascript" src="****.js"></script> <----  var delta=0.15 var collection; function floaters() {  this.items = [];  this.addItem = function(id,x,y,content)      {     document.write('<D

页面两侧对联广告代码效果

对联|对联广告|页面 点击此处查看效果 现在很多网站广告做的如火如荼,现在我就来介绍一下常见的对联浮动广告效果的代码使用方法,本文介绍的这种效果,在1024*768分辨率下正常显示,在800*600的分辨率下可以自动隐藏,以免遮住页面影响访问者浏览内容,下面文本框中就是实现效果所需代码: var delta=0.015 var collection; function floaters() { this.items = []; this.addItem = function(id,x,y,con

页面两侧对联广告(允许关闭)代码效果

对联|对联广告|页面 点击此处查看效果 现在很多网站广告做的如火如荼,现在我就来介绍一下常见的对联浮动广告效果的代码使用方法,本文介绍的这种效果,在1024*768分辨率下正常显示,在800*600的分辨率下可以自动隐藏,以免遮住页面影响访问者浏览内容,而且与前面两个代码不同的是,广告图下方增加了一个图片按纽,允许访客点击关闭广告图片,下面文本框中就是实现效果所需代码:  var delta=0.015; var collection; var closeB=false; function fl

用HTML5制作一个简单的弹力球游戏

  学canvas学了有一个多礼拜了,觉得canvas真心好玩.学canvas的人想法估计都跟我差不多,抱着写游戏的态度去学canvas的.所以运动学啊.碰撞检测啊.一些简单的算法神马的是基础啊.以前没做过游戏的我学起来还真心吃力.今天就来说下用canvas写个最简单的弹力球游戏,就运用了最简单的重力作用以及碰撞检测. 先上DEMO:弹力球DEMO (鼠标点击canvas里的空白区域会给与小球新速度) [创建小球对象] 第一步就是先创建一个小球对象,写好小球的构造函数: 代码如下: var Ba

html5版canvas自由拼图实例

 代码运行效果如下图所示:   canvasElement.js代码如下:   复制代码 代码如下: define('canvasElement', [ '../multi_upload/core' ], function(S) { var Canvas = window.Canvas || {}; (function () { Canvas.Element = function() {}; Canvas.Element.prototype.fillBackground = true; Canv

js左右弹性滚动对联广告代码分享

 这个对联广告与其它的有所区别,这个是页面加载时先没看到广告,然后从左边快速飞进来的两个对联广告哦,下面我们一起来看看对联广告效果代码    代码如下: <p> <meta content="text/html; charset=gb2312" http-equiv="Content-Type" /><style type="text/css">   .shuoming {margin-top:20px; bo

深入浅析JavaScript中的scrollTop_javascript技巧

含义:滚动条高度 作用:滚动加载(ajax),滚动导航固定定位,滚动弹框定位等等. 展示滚动导航和侧边栏滚动固定定位的效果: 1.chrome浏览器 document.body.scrollTop和document.documentElement.scrollTop都可以 2.各浏览器下 scrollTop的差异 IE6/7/8/9/10: 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 : 对于有doctype声明的页