js中的scroll和offset 使用比较的实例与分析
发布时间:2024-05-02 16:29:52
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>
上面就是自己测试用的代码,可以直接拿来测试。


猜你喜欢
- 这篇文章主要介绍了Python如何基于smtplib发不同格式的邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 你完成了你的品牌新的应用程序,一切工作就像一个魅力。用户来使用你的网络。每个人是幸福的。 然后,突然间,一个大爆发的用户杀死你的MySQL服
- 可能很多人遇到过这个错误,当使用setup.py安装python2.7图像处理模块PIL时,python默认会寻找电脑上以安装的vs2008
- 并行发送sh命令pbsh.py#!/usr/bin/python# -*- coding: UTF-8 -*-import paramiko
- 在pycharm上依次选择打开File->settings->Editor->File andCode Templates
- Ubuntu16.04自带python2.7与python3.5,某个项目编译却要求python版本大于等于3.7,遂考虑在原系统基础上再安
- 方法一:def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] l
- 1、将css与javascript全部用下边的方法分离到外部文件中去。<link rel="stylesheet"
- 单例模式单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 window 对象等。在 JavaScri
- 无意中看到一段用Tkinter库写的放烟花的程序,就跟着跑了一遍。设计理念:通过让画面上一个粒子分裂为X数量的粒子来模拟 * 效果。粒子会发生
- 1.文本string:通用字符串操作re:正则表达式操作difflib:差异计算工具textwrap:文本填充unicodedata:Uni
- (1)OracleServiceSID 数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程
- 一、需求说明当我们写爬虫的时候,经常会遇到json格式的数据,它通常是如下结构:data = [{'name':'小
- 快速高效用:SET SQL_SAFE_UPDATES = 0;下面的就不要看了!今日用MySQL Workbench进行数据库的管理更新时,
- 初入深度学习,就遇到了困难,一直安装不了tensorflow和keras库!!!真是让人着急!!!在经过无数次尝试,看了无数篇博客之后,终于
- Tensorflow 提供了一种统一的格式来存储数据,这个格式就是TFRecord,上一篇文章中所提到的方法当数据的来源更复杂,每个样例中的
- 什么是XML?XML 指可扩展标记语言(eXtensibleMarkupLanguage)。 你可以通过本站学习XML教程XML 被设计用来
- decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持1.可以传递给Decimal整型或者字符串参数,但不能是浮
- Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例:fmt.Printf("\n %c
- 本篇文章将实现用Python获取系统信息CPU占有率并将其变化绘制成折线图。第一步:获取系统CPU占有率信息psutil模块是专门获取系统信