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 相关文章推荐
让您的菜单不离网站
Oct 03 Javascript
jquery 得到当前页面高度和宽度的两个函数
Feb 21 Javascript
JavaScript Distilled 基础知识与函数
Apr 07 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
jQuery实现页面顶部下拉广告
Dec 30 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
Vue项目webpack打包部署到服务器的实例详解
Jul 17 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
Apr 17 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 Javascript
Javascript中的this,bind和that使用实例
Dec 05 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
php 读取文件乱码问题
2010/02/20 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
python绘制规则网络图形实例
2019/12/09 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
数字漫画:comiXology
2020/06/13 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
教师师德反思材料
2014/02/15 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
世界遗产导游词
2015/02/13 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js