差别client、offset、scroll系列以及event的几个距离属性
element元素结点属性
一. offset系列
1.offsetWidth 和offsetHeight
element.offsetWidth是一个仅仅读属性,它包含了:
css width + padding+border+垂直滚动栏宽度
这里的滚动栏就是单纯滚动栏的意思,不包含不可见的部分哦。
而element.offsetHeight与之相似,仅仅是改为垂直方向而已。
在页面布局中要计算和考虑的盒子的宽度和高度通经常使用这个属性。
2.offsetParent
element.offsetParent是一个仅仅读属性,返回一个对象的引用,这个引用指向了element(调用offsetParent)的近期一个使用了定位(absolute、relative)的父元素,假设没有定位了的父元素,则指向根元素(标准模式下为 html。quirks 模式下为 body)。
兼容性:
在 Webkit 中,假设元素为隐藏的(该元素或其祖先元素的 style.display 为 “none”),或者该元素的 style.position 被设为 “fixed”。则该属性返回 null。
在 IE 9 中,假设该元素的 style.position 被设置为 “fixed”,则该属性返回 null。(display:none 无影响。)
3.offsetTop和offsetLeft
element.offsetTop 和 element.offsetLeft 都是相对于offsetParent的内边距(外)边界的。
也就是返回对象元素边界的左上角顶点相对于offsetParent的左上角顶点的水平偏移量。这里。元素对象左上角顶点是要从border開始算(假设有的话。即border边界距离offsetParent padding边界的距离,不是从从元素的margin開始算),offsetParent的左上角是指其padding边界。
在元素定位中通常使用这个属性来获取定位元素的top和left样式值。
參考资料:
前端攻城狮学习笔记九:让你彻底弄清offset
HTMLElement.offsetParent
二. client系列
1.clientHeight和clientWidth
element.clientHeight表示元素可视区域的高度。包含可视区域中元素的
CSS height+padding
不包含边框、滚动栏、不可见部分、margin。
clientWidth相似。仅仅只是是水平方向。
比如document.documentElement.clientWidth是整个文档的可视区宽度。
2.clientLeft和clientTop
是元素
padding外边界与父元素的padding边界的距离-元素的offsetLeft值,就等于元素的左边框宽度。???不知道理解对没
clientTop与之相似。
三. scroll系列
1.scrollHeight和scrollWidth
element.scrollHeight属性是仅仅读的,它包含:
可见CSS高度+padding+border+因为overflow设置为隐藏或者scroll而不可见的内容高度。
可看出和offsetHeight的差别就是多了个不可见内容区高度。scrollWidth与之相似。
2.scrollTop和scrollLeft
即是被scroll了的内容区域的高度和宽度。隐藏不可见的内容区域。
注意:
元素设置了overflow: scroll,滚动栏是占领了元素原来CSS宽度的一部分。即加了滚动栏后,元素CSS中定义的属性width=滚动栏宽度+content 宽度。边框是加在滚动栏外面的,而padding则是加在滚动栏内部。内容区之外的。
一个盒子设置了margin-top。是和别的盒子间的垂直距离,这个别的盒子不包含父盒子,也就是说,内部盒子顶部和父盒子边界的距离不变,而是整个父盒子顶部都和更外部的环境相距了margin-top值的距离。
參考资料:
Mozilla文档上的图示描写叙述得非常明确
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollHeight
event事件对象属性
以下几个是event事件对象的属性,可获取鼠标的位置:
1.clientX。clientY
表示鼠标位置距离可视窗体边缘的距离。它们是事件对象的属性。这2个属性不是标准属性,但得到了广泛支持。
IE事件中没有这2个属性。
2. pageX,pageY
表示鼠标位置距离整个文档页面边缘(左和上边缘)的距离
3.screenX,screenY
表示鼠标位置距离屏幕边缘的距离
4.offsetX,offsetY:
鼠标相对于事件源元素(srcElement)的X,Y坐标,仅仅有IE事件有这2个属性,标准事件没有相应的属性。
来看个小样例。尾随鼠标的提示框:
//css
#info {position:absolute;}
//html
<div id="info"></div>
//js
document.onmousemove=function(ev){
var oEvent=ev||event;
var info=document.getElementById('info');
//获取不可见内容高度
var scrollTop=document.documentElement.scrollTop||
document.body.scrollTop//?
??混杂模式和标准模式下都能工作?
info.style.left=oEvent.clientX+'px';
info.style.top=oEvent.clientY+scrollTop+'px'; //可视区高度+scrolled的高度
}
document.documentElement指向document对象的根元素,在html文档中就是html元素。
经验:仅仅要在用到clientX和clientY的地方都最好加上scroll值。
差别client、offset、scroll系列以及event的几个距离属性的更多相关文章
- 区别client、offset、scroll系列以及event的几个距离属性
element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个只读属性,它包括了: css width + p ...
- client , offset , scroll 系列 及百度导航栏案例
1. client 系列 示例 : <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- client,offset,scroll系列
client(客户端),offset(偏移),scroll(滚动)1.client系列 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域到边框左部 ...
- DOM盒模型和位置 client offset scroll 和滚动的关系
DOM盒模型和位置 client offset scroll 和滚动的关系 概览 在dom里面有几个描述盒子位置信息的值, pading border margin width height clie ...
- JS中client/offset/scroll等的宽高解析
原文地址:→传送门 window相关宽高属性 1. window.outerHeight (窗口的外层的高度) / window.outerWidth (窗口的外层的宽度) window.outerH ...
- client offset scroll 之间的区别
一.client 属性 值 clientWidth 元素被设置的宽度 + padding左右内间距 clientHeight 元素被设置的高度 + padding上下内间距 clientLeft 左 ...
- 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.名词 ...
- JS-特效 ~ 04. client对象、网页可视区域的宽高、client / offset / scroll 三大家族的区别、冒泡事件、事件委托、获取内嵌式和外链式属性getStyle(ele,attr) ;、缓动动画封装
知识点: 模拟滚动条的解除事件问题 : event内置对象,包含 了大量事件: page兼容性: pageX || clientX + scool().top : if (true === a)tr ...
- JavaScript位置:window&client&offset&scroll&MouseEvent&getBoundingClientRect&计算任意元素滚动条宽度
Window: window.innerWidth:浏览器viewport视口宽,包括垂直滚动条 window.innerHeight:浏览器视口高,包括水平滚动条 window.outerWidth ...
随机推荐
- HTML5触摸屏touch事件使用实例1
1.源码: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> ...
- jquery中的this 到底是什么意思? $(this)
如果你学过面向对象语言的话,例如JAVA,你应该明白这个this在JAVA里的意思,简单的说,谁在调用它,它就代表文谁. 那么,用到这个jquery里,也算是蛮简单的.举两个例子,一个是单个对象,一个 ...
- oralce中exists not exists in not in对于NULL的处理
1. 先讨论 in 与 not in中存在NULL的情况, sql语句如下: 1 select 1 result1 from dual where 1 not in (2, 3); 2 3 4 s ...
- 信息增益(IG,Information Gain)的理解和计算
决策树构建中节点的选择靠的就是信息增益了. 信息增益是一种有效的特征选择方法,理解起来很简单:增益嘛,肯定是有无这个特征对分类问题的影响的大小,这个特征存在的话,会对分类系统带来多少信息量,缺了他行不 ...
- 转载:详解CSS选择器、优先级与匹配原
转载网址:http://polaris1119.javaeye.com/blog/764428 文章就CSS选择器的优先级问题做了一些总结,严格来讲,选择器的种类可以分为三种:标签名选择器.类选择器和 ...
- IIS下图片防盗连设置详解
小站只有100个IIS,盗链后经常是连主页都打不开,就想着弄个图片防盗链,在网上找了一下资料,正则表达式的写法啊,ISAPI_REWRITE基本配置啊等等,找来啃了一天终于发现有三个方法实现. 第一. ...
- js获取对象位置的方法
scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最 ...
- Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点
Vxworks.QNX.Xenomai.Intime.Sylixos.Ucos等实时操作系统的性能特点 VxWorks操作系统 VxWorks 操作系统是美国WindRiver公司于1983年设计开发 ...
- codevs 3094 寻找sb4
3094 寻找sb4 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description sb有一天和sml吵架了,她 ...
- notes: the architecture of GDB
1. gdb structure at the largest scale,GDB can be said to have two sides to it:1. The "symbol si ...