client/offset/srooll位置与关系
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
.id{
margin: 10px;
border: 5px solid red;
top: 40px;
width: 300px;
height:300px;
}
.jj{
margin: 10px;
border: 50px solid blue;
top: 40px;
width: 200px;
height: 200px;
overflow: scroll;
}
p{
height: 20px;
}
</style>
<body>
<div class="id" id="is">
<div class="jj" id="jj">
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p>
<p>水电费水电费是</p><p>水电费水电费是</p><p>水电费水电费是</p>
</div>
</div>
</body>
<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.js"></script>
</html>
一、Window视图属性
、innerWidth 属性和innerHeight 属性
例如innerWidth表示获取window窗体的内部宽度,不包括用户界面元素,比如窗框
_getViewHeight = function () {
var
_viewHeight = 0;
if
(
typeof
window.innerHeight !==
'undefined'
){
_viewHeight = window.innerHeight;
}
else
if
(
typeof
document.compatMode !==
'undefined'
&& document.compatMode !==
"BackCompt"
){
_viewHeight = document.documentElement.clientHeight;
}
else
{
_viewHeight = document.body.clientHeight;
}
return
_viewHeight;
};
、outerWidth属性和outerHeight属性
例如outerWidth/outerHeight表示整个浏览器窗体的大小,包括任务栏等
、pageXOffset和pageYOffset
表示整个页面滚动的像素值(水平方向的和垂直方向的
screenX and screenY
距离屏幕的高度和宽度
二、Screen视图属性 . availWidth和availHeight
显示器可用宽高,不包括任务栏之类 avail 英 [əˈveɪl] 美 [əˈvel]
. colorDepth
3.pixelDepth
该属性基本上与colorDepth一样 . width和height
表示显示器屏幕的宽高。
三、元素视图属性1. clientLeft和clientTop
. clientWidth和clientHeight
表示内容区域的高度和宽度,包括padding大小,但是 .offsetLeft和offsetTop 表示相对于最近的祖先定位元素(CSS position 属性被设置为的左右偏移值
偏移距离时相对于html文档左上角的偏移值
.offsetWidth和offsetHeight
整个元素的尺寸(包括边框)
5、scrollLeft和scrollTop
表示元素滚动的像素大小。可读可写。
五、鼠标位置(Mouse position)
. clientX,clientY
相对于window,为鼠标相对于window的偏移 event.clientX event.clientY screenX, screenY
鼠标相对于显示器屏幕的偏移坐标
event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性 event.pageX、event.pageY 类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性。 event.offsetX、event.offsetY 鼠标相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。 event.screenX、event.screenY 鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性
六、jquery的位置
position()
获取匹配元素相对父元素的偏移。
返回的对象包含两个整型属性:top 和 left。为精确计算结果,请在补白、边框和填充属性上使用像素单位。此方法只对可见元素有效。
scrollTop([val])
概述
获取匹配元素相对滚动条顶部的偏移。
此方法对可见和隐藏元素均有效。
Draw.prototype.getAbsoluteLeft = function (_e) {
var _left = _e.offsetLeft,
_current = _e.offsetParent;
while(_current !== null){
_left += _current.offsetLeft;
_current = _current.offsetParent;
}
return _left;
};
/**
* 获取元素的绝对顶部坐标
* @param _e 需要获取的元素dom对象
* @returns {number|Number}
*/
Draw.prototype.getAbsoluteTop = function (_e) {
var _top = _e.offsetTop,
_current = _e.offsetParent;
while(_current !== null){
_top += _current.offsetTop;
_current = _current.offsetParent;
}
return _top;
};
/**
* 获取元素的鼠标的位置
* @param _e
* @returns {{}}
*/
Draw.prototype.getMousePoint = function(_e){
var body = document.body,
_left = 0,
_top = 0;
if(typeof window.pageXOffset != 'undefined'){
_left = window.pageXOffset;
_top = window.pageYOffset;
}
else if(typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){
_left = document.documentElement.scrollLeft;
_top = document.documentElement.scrollTop;
}
else {
_left = body.offsetLeft;
_top = body.offsetTop;
}
_left += _e.clientX;
_top += _e.clientY;
this._mousepos.left = _left;
this._mousepos.top = _top;
return this._mousepos;
};
client/offset/srooll位置与关系的更多相关文章
- DOM盒模型和位置 client offset scroll 和滚动的关系
DOM盒模型和位置 client offset scroll 和滚动的关系 概览 在dom里面有几个描述盒子位置信息的值, pading border margin width height clie ...
- JavaScript位置:window&client&offset&scroll&MouseEvent&getBoundingClientRect&计算任意元素滚动条宽度
Window: window.innerWidth:浏览器viewport视口宽,包括垂直滚动条 window.innerHeight:浏览器视口高,包括水平滚动条 window.outerWidth ...
- JavaScript概念之screen/client/offset/scroll/inner/avail的width/left 分类: JavaScript HTML+CSS 2015-05-27 16:42 635人阅读 评论(0) 收藏
原文地址:http://caibaojian.com/js-name.html JS中获取各种宽度和距离,常常让我们混淆,各种浏览器的不兼容让我们很头疼,现在就在说说js中有哪些宽度和距离. 1.名词 ...
- page,client,offset区别
offset:相对于当前“盒子”的距离 ,与滚动条无关 client:相对于可视区域的距离,与滚动条无关 page:相对于整个页面的距离,与滚动条有关 示例代码: <!DOCTYPE html& ...
- kafka 消费者offset记录位置和方式
我们大家都知道,kafka消费者在会保存其消费的进度,也就是offset,存储的位置根据选用的kafka api不同而不同. 首先来说说消费者如果是根据javaapi来消费,也就是[kafka.jav ...
- JS中client/offset/scroll等的宽高解析
原文地址:→传送门 window相关宽高属性 1. window.outerHeight (窗口的外层的高度) / window.outerWidth (窗口的外层的宽度) window.outerH ...
- client , offset , scroll 系列 及百度导航栏案例
1. client 系列 示例 : <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- client,offset,scroll系列
client(客户端),offset(偏移),scroll(滚动)1.client系列 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域到边框左部 ...
- JS-特效 ~ 04. client对象、网页可视区域的宽高、client / offset / scroll 三大家族的区别、冒泡事件、事件委托、获取内嵌式和外链式属性getStyle(ele,attr) ;、缓动动画封装
知识点: 模拟滚动条的解除事件问题 : event内置对象,包含 了大量事件: page兼容性: pageX || clientX + scool().top : if (true === a)tr ...
随机推荐
- SQL Server 身份验证 登陆
当遇到错误 检查SQL是否启动 SQL Server (MSSQLSERVER)在 打开 SQL Server 配置管理器 SQL Server (MSSQLSERVER) 鼠标右键->启动 再 ...
- 资源Createwindow,对应标识符,绑定窗口
问? 定义一个CEdit cedit1:怎么和IDC_EDIT1 关联,可以在CEdit.Create()里传进去或者在DoDataExchange()里面绑定,是不是一定要先弄出个IDC_EDIT1 ...
- ASPNET服务端控件练习(一个机试题)
简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, str ...
- 【你吐吧c#每日学习】10.29 C#字符串类型&Common operators
backslash \反斜杠 escape sequence 转义字符 double quote 双引号 new line 新行字符 Bell アラート Console.WriteLine(" ...
- [转]StuQ 技能图谱(全套13张)
程序开发语言综述.jpg 前端工程师必备技能.jpg 大数据工程师必备技能.jpg 安全工程师必备技能.jpg 嵌入式开发必备技能.jpg iOS开发工程师必备技能.jpg 移动无线测试工程师 ...
- spark小技巧-mapPartitions
与map方法类似,map是对rdd中的每一个元素进行操作,而mapPartitions(foreachPartition)则是对rdd中的每个分区的迭代器进行操作.如果在map过程中需要频繁创建额外的 ...
- java-excel导出
java excel导出分为两种2003年的格式和2007年的格式. 2003年的xls一个sheet限制65536. 2007年的xlsx限制为1048576. jxl导入2003 gradle j ...
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
此数据库处理单用户模式,尚在连接当中,无法删除(既使将SQLServer停止后再启动也是如此) USE [master] GO /****** Object: StoredProcedure [dbo ...
- 【转】Web UI自动化测试原理
目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等 ...
- Sed文本替换一例
使用 Sed 完成文本替换操作任务是非常合适的. 现在, 假设我要将一个原有 Java 项目中的一些包及下面的类移到另一个项目中复用. Project javastudy: Packages: alg ...