offsetWidth:html
offsetHeight:获取元素的可视高度,无单位;(其他上同)浏览器
offsetLeft:获取元素左外边框到定位父级的左内边框的像素距离;bash
offsetTop:获取元素伤外边框到定位父级的上内边框的像素距离;函数
//获取浏览器向上向左卷曲出去距离的值
function getScroll(){
return {
left : window.pageXOffset || document.documentElement.scrollLeft
|| document.body.scrollLeft || 0,
top : window.pageYOffset || document.documentElement.scrollTop
|| document.body.scrollTop || 0
};
}
//测试
window.onscroll = function(){
console.log(getScroll().top);
};
}
复制代码
pageX(pageY):获取向上卷曲与可视距离的和(仅火狐和谷歌支持)测试
谷歌火狐支持e对象 IE8支持window.eventui
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<style>
*{
margin: 0;
padding: 0;
}
body{
height: 2000px;
}
img{
position: absolute;
}
#box{
position: absolute;
width: 100px;
height: 100px;
border: 1px solid red;
}
#img{
position: absolute;
width: 100px;
height: 100px;
border: 1px solid green;
}
</style>
</head>
<body>
<div id="box"></div>
<div id="img"></div>
<script src="common.js"></script>
<script>
//图片跟着鼠标飞,能够中任何的浏览器中实现
//clientX 和 clientY 单独的使用的兼容代码
//scrollLeft 和 scroollTop 的兼容代码
//pageX, pageY 和 clientX + scrollLeft 和 clientY + scrollTop
//把代码封装在对象中
var evt = {
//window.event 和 事件参数对象e的兼容
getEvent:function(evt){
return window.event || e;
},
//可视区域的横坐标的兼容代码
getClientX:function(evt){
return this.getEvent(evt).clientX;
},
//可视区域的纵坐标的兼容代码
getClientY:function(evt){
return this.getEvent(evt).clientY;
},
//页面向左卷曲出去的横坐标
getScrollLeft:function(){
return window.pageXOffset || document.body.scrollLeft
|| document.documentElement.scrollLeft || 0;
},
//页面向上卷曲出去的纵坐标
getScrollTop:function(){
return window.pageYOffset || document.body.scrollTop
|| document.documentElement.scrollTop || 0;
},
//相对于页面的横坐标(pageX 或者 clientX+scrollLeft)
getPageX:function(evt){
return this.getEvent(evt).pageX ? this.getEvent(evt).pageX : this.getClientX(evt) + this.getScrollLeft();
},
//相对于页面的纵坐标(pageX 或者 clientY + scrollTop)
getPageY:function(evt){
return this.getEvent(evt).pageY ? this.getEvent(evt).pageY : this.getClientY(evt) + this.getScrollTop();
}
}
document.onmousemove=function (e) {
my$("box").style.left=evt.getPageX(e)+"px";
my$("box").style.top=evt.getPageY(e)+"px";
};
</body>
</html>
复制代码
------------------------------------------------------记录于 2019.4.16 JavaScript之BOMthis