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 相关文章推荐
Mootools 1.2教程 定时器和哈希简介
Sep 15 Javascript
js window.onload 加载多个函数的方法
Nov 02 Javascript
jquery实现每个数字上都带进度条的幻灯片
Feb 20 Javascript
js 去除字符串第一位逗号的方法
Jun 07 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
jquery实现简单的二级导航下拉菜单效果
Sep 07 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
js控制随机数生成概率代码实例
Mar 21 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
Jun 04 Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
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新手上路(十一)
2006/10/09 PHP
PHP连接access数据库
2008/03/27 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
python实现多线程采集的2个代码例子
2014/07/07 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python多线程实现TCP服务端
2019/09/03 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
年终自我鉴定
2013/10/09 职场文书
安全演讲稿大全
2014/05/09 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
解析Java中的static关键字
2021/06/14 Java/Android
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS