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