js中的scroll和offset 使用比较的实例与分析


Posted in Javascript onSeptember 29, 2013

1.offsetTop     :
当前对象到其上级层顶部的距离.
不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

2.offsetLeft    :
当前对象到其上级层左边的距离.
不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.

3.offsetWidth   :
当前对象的宽度.
与style.width属性的区别在于:如对象的宽度设定值为百分比宽度,则无论页面变大还是变小,style.width都返回此百分比,而offsetWidth则返回在不同页面中对象的宽度值而不是百分比值

4.offsetHeight :
与style.height属性的区别在于:如对象的宽度设定值为百分比高度,则无论页面变大还是变小,style.height都返回此百分比,而offsetHeight则返回在不同页面中对象的高度值而不是百分比值

5.offsetParent  :
当前对象的上级层对象.
注意.如果对象是包括在一个DIV中时,此DIV不会被当做是此对象的上级层,(即对象的上级层会跳过DIV对象)上级层是Table时则不会有问题.
利用这个属性,可以得到当前对象在不同大小的页面中的绝对位置.

6.scrollLeft    :
对象的最左边到对象在当前窗口显示的范围内的左边的距离.
即是在出现了横向滚动条的情况下,滚动条拉动的距离.

7.scrollTop
对象的最顶部到对象在当前窗口显示的范围内的顶边的距离.
即是在出现了纵向滚动条的情况下,滚动条拉动的距离.

 

【代码】测试offsetTop和scrollTop的html代码

<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="content-type"/>

<script type="text/javascript">
    function test1(){
          var div = document.getElementById("div1");
          document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距离屏幕顶部的距离
          document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距离屏幕左部的距离
          document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1纵向滚动条滚动的距离
          document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1横向滚动条滚动的距离
     }
      function test2(){
          var div = document.getElementById("div2");
          document.getElementById("li5").innerHTML = (div.offsetTop)+"px";//div2距离屏幕顶部的距离
          document.getElementById("li6").innerHTML = (div.offsetLeft)+"px";//div2距离屏幕左部的距离
          document.getElementById("li7").innerHTML = (div.scrollTop)+"px";//div2纵向滚动条滚动的距离
          document.getElementById("li8").innerHTML = (div.scrollLeft)+"px";//div2横向滚动条滚动的距离
     }
     function test3(){
          var div = document.getElementById("div3");
          document.getElementById("li9").innerHTML = (div.offsetTop)+"px";//div3距离屏幕顶部的距离
          document.getElementById("li10").innerHTML = (div.offsetLeft)+"px";//div3距离屏幕左部的距离
          document.getElementById("li11").innerHTML = (div.scrollTop)+"px";//div3纵向滚动条滚动的距离
          document.getElementById("li12").innerHTML = (div.scrollLeft)+"px";//div3横向滚动条滚动的距离
     }
</script>
</head>
<body style="border: 10px solid red;padding:0px 0px;margin:5px 10px">
    <div>
    <DIV style="width:70%;border-right:1px dashed red;float:left;">
        <div style="float:left;">
            <div id="div1" style="border:5px blue solid;height:400px;width:200px;overflow:auto">
                <div style="height: 500px;width:400px">this is test!</div>
            </div>
            <input type="button" value="CLICK 1" onclick="test1()" style="border: 1px solid purple;height: 25px;"/>
        </div>
        <div>
            <div id="div2" style="border:5px solid yellow;height:400px;width:200px;overflow:auto">
                <div style="height: 500px;width:400px">this is test!</div>
            </div>
            <input type="button" value="CLICK 2" onclick="test2()"style="border: 1px solid purple;height: 25px;"/>
        </div>
        <div style="clear: both;">
            <div id="div3" style="border:5px solid #0080C0;height:400px;width:200px;overflow:auto;clear:both;">
                <div style="height: 500px;width:400px">this is test!</div>
            </div>
            <input type="button" value="CLICK 3" onclick="test3()"style="border: 1px solid purple;height: 25px;"/>
        </div>
    </DIV>
    <DIV style="width: 20%;float:right;margin-right:100px">
        <ul>click1结果:
            <li id="li1"></li>
            <li id="li2"></li>
            <li id="li3"></li>
            <li id="li4"></li>
        </ul>
        <ul>click2结果:
            <li id="li5"></li>
            <li id="li6"></li>
            <li id="li7"></li>
            <li id="li8"></li>
        </ul>
        <ul>click3结果:
            <li id="li9"></li>
            <li id="li10"></li>
            <li id="li11"></li>
            <li id="li12"></li>
        </ul>
    </DIV>
    </div>
</body>
</html>

上面就是自己测试用的代码,可以直接拿来测试。
Javascript 相关文章推荐
img的onload的另类用法
Jan 10 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
Jquery Post处理后不进入回调的原因及解决方法
Jul 15 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
JavaScript体验异步更好的解决办法
Jan 08 Javascript
用ES6写全屏滚动插件的示例代码
May 02 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
JS实现的排列组合算法示例
Jul 16 Javascript
jQuery 移除事件的方法
Jun 20 jQuery
9个JavaScript日常开发小技巧
Oct 06 Javascript
JavaScript实现10秒后再次获取验证码
Dec 02 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 #Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
Sep 29 #Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
Sep 29 #Javascript
jquery事件与函数的使用介绍
Sep 29 #Javascript
Jquery选中或取消radio示例
Sep 29 #Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 #Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 #Javascript
You might like
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
Vue实现可移动水平时间轴
2020/06/29 Javascript
python自动安装pip
2014/04/24 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
flask框架路由常用定义方式总结
2019/07/23 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python如何删除文件、目录
2020/06/23 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
财务人员个人求职信范文
2013/12/04 职场文书
物流仓管员工作职责
2014/01/06 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
应聘护士求职信
2014/07/21 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
Java spring单点登录系统
2021/09/04 Java/Android
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python