三大家族

offSet家族offsetWidth 和 offsetHeight获取对象自身的宽度和高度 ,包括内容、边框和内边距,即:offsetWidth = width + border + padding
offsetLeft 和 offsetTop
*
距离第一个有定位的父级盒子左边和上边的距离
*
父级盒子必须要有定位,如果没有,则最终以body为准!
*
offsetLeft和offsetTop从从父标签的padding开始计算,不包括border。即:从子盒子边框到定位父盒子边框的距离。

offsetParent
*
返回当前对象的父级(带有定位)盒子,可能是父亲、也可能是爷爷
*
如果当前元素的父级元素没有进行CSS定位(position:absolute 或 relative),则其offsetParent为body
*
如果当前元素的父级元素中有进行CSS定位(position:absolute或relative),则其offsetParent取最近的那个父级元素

offsetXXX 和 style.XXX的区别
*
style.left只能获取行内的,而offsetLeft则可以获取到所有的;
*
offsetLeft 可以返回没有定位盒子距离左侧的位置;而style.left不可以,其只能返回有定位盒子的left;
*
offsetLeft 返回的是数字,而 style.left 返回的是字符串,除了数字外还带有单位:px;
*
offsetLeft是只读的,而style.left是可读写;
*
如果没有给 当前 元素指定过 top 样式,则 style.top 返回的是空字符串。

scroll家族
*
网页正文全文宽: document.body.scrollWidth
*
网页正文全文高: document.body.scrollHeight
*
网页被卷去的高: document.body.scrollTop
*
网页被卷去的左: document.body.scrollLeft
*
注意:在实际开发中使用比较多的就是scrollTop

适配
1)ie9+ 和 最新浏览器
*
window.pageXOffset; (scrollLeft)
*
window.pageYOffset; (scrollTop)
2)Firefox浏览器 和 其他浏览器
*
document.documentElement.scrollTop
3)Chrome浏览器 和 没有声明 DTD
*
document.body.scrollTop
4)兼容写法
*
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
*
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;

3、scrollTo(x,y)
*
把内容滚动到指定的坐标
*
格式:scrollTo(xpos,ypos)

client家族1、概念
1)clientWidth和clientHeight
*
网页可见区域宽: document.body.clientWidth;
*
网页可见区域高: document.body.clientHeight;
2)clientLeft和clientTop
*
返回的是元素边框的borderWidth
*
如果不指定一个边框或者不定位该元素,其值就为0

2、offset、client和scroll的区别分析
1)left和top分析
*
clientLeft: 左边边框的宽度;clientTop: 上边边框的宽度
*
offsetLeft: 当前元素距离有定位的父盒子左边的距离;offsetTop: 当前元素距离有定位的父盒子上边的距离
*
scrollLeft: 左边滚动的长度; scrollTop: 上边滚动的长度
2)width和height分析
*
clientWidth/Height: 内容 + 内边距
*
offsetWidth/Height: 内容 + 内边距 + 边框
*
scrollWidth/Height: 滚动内容的宽度和高度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值