1.offset属性家族:获取元素真实的宽高和位置
offsetWidth、offsetHeight、offsetParent、offsetLeft、offsetTop
2.之前学习的通过style属性获取宽高的特点
3.offsetWidth与offsetHeight:获取的是元素的实际宽高= width+border+padding
4.offsetLeft和offsetTop
5.offsetParent
offsetParent:获取最近的定位父元素 (自己定位参照的父元素)
注意点:
1.如果元素自身是固定定位(fixed),则定位父级是null
2.如果元素自身是非固定定位,并且所有的父元素都没有定位,那么他的定位父级是body
3.body的定位父级是null
scroll家族:(与offset家族类似,不带单位,number类型)
//封装一个获取页面滚出去距离的浏览器兼容性函数:利用逻辑或的短路
function getPageScroll ( ) {
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
return {
scrollLeft : scrollLeft,//左边是对象属性名,右边是属性值
scrollTop : scrollTop
}
}
//封装一个获取页面的可视区域大小
getClientSize = function ( ) {
return {
clientWidth : window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0,
clientHeight : window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0,
}
}
ele.onclick = function ( e ) {
//IE8及之前用window.event获取,可以用逻辑或的短路运算解决浏览器兼容性问题
e = e || window.event;
console.log ( e );
}
//事件对象里面的常用的三个坐标
var box = document.getElementById("box");
box.onclick = function (e) {
e = e || window.event;
//1.电脑屏幕的左上角,距离你触发事件的那一点的x值和y值。
console.log("e.screenX:"+e.screenX+"---e.screenY:"+ e.screenY);
//2.浏览器可视区域,距离触发事件的那一点的x值和y值
console.log("e.clientX:"+e.clientX+"---e.clientY:"+ e.clientY);
//3.页面的左上角(哪怕页面滚走了,还是页面左上角),距离触发事件的那一点的x值和y值。
//浏览器兼容问题:IE8及之前不支持
console.log("e.pageX:"+e.pageX+"---e.pageY:"+ e.pageY);
console.log ( getPagePoint ( e ).pageX, getPagePoint ( e ).pageY );
}
//pageX和pageY的兼容
//pageX/Y坐标系相对于页面左上角,实际上就是界面滚定出去的距离 + 可视区域的距离
function getPagePoint ( e ) {
e = e || window.event;//事件对象兼容
return {
pageX : e.pageX || getPageScroll().scrollLeft + e.clientX,
pageY : e.pageY || getPageScroll().scrollTop + e.clientY,
};
};
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。