首先,先嚇唬一下咱們的小白們!在js中的描述寬高的能夠細分有22種。屬性根據不一樣的兼容性也分爲五種javascript
1.與瀏覽器無關
window.innerWidth
window.outerWidth
window.screen.width
window.screen.availWidth
window.screenLeft (瀏覽器距離屏幕左側的距離寬度)html
2.與瀏覽器有關java
語法:document.documentElement.clientWidth.或者doucment.body.clientWidth.chrome
clientWidth(距離父級元素clientLeft)瀏覽器
offsetWidth(距離父級元素offsetLeft)app
scrollWidth(距離滾動條頂部scrollTop)dom
通常無滾動條狀況下offsetWidth=clientWidth=scrollWidth(有可能偏差1px)spa
IE瀏覽器兼容寫法:firefox
document.body.scrollTopcode
document.body.offsetWidth
document.body.clientHeight
Chrome瀏覽器兼容寫法:
var scrolltop = document.documentElement.scrollTop /*獲取滾動條距離頂部得距離*/
var clientHeight = document.documentElement.clientHeight; /*獲取頁面可視區的高度*/
var offset = document.documentElement.offsetWidth; /*獲取頁面可視區的高度,包含border*/
js鼠標事件綜合各大瀏覽器能獲取到座標的屬性總共如下五種:
clientX/Y
clientX/Y
獲取到的是觸發點相對瀏覽器可視區域左上角距離,不隨頁面滾動而改變。
兼容性:全部瀏覽器均支持
pageX/Y
pageX/Y
獲取到的是觸發點相對文檔區域左上角距離,會隨着頁面滾動而改變
兼容性:除IE6/7/8不支持外,其他瀏覽器均支持
offsetX/Y
offsetX/Y
獲取到是觸發點相對被觸發dom的左上角距離,不過左上角基準點在不一樣瀏覽器中有區別,其中在IE中之內容區左上角爲基準點不包括邊框,若是觸發點在邊框上會返回負值,而chrome中以邊框左上角爲基準點。
兼容性:IE全部版本,chrome,Safari均完美支持,Firefox不支持
layerX/Y
layerX/Y
獲取到的是觸發點相對被觸發dom左上角的距離,數值與offsetX/Y相同,這個變量就是firefox用來替代offsetX/Y的,基準點爲邊框左上角,可是有個條件就是,被觸發的dom須要設置爲position:relative或者position:absolute,不然會返回相對html文檔區域左上角的距離。
兼容性:IE6/7/8不支持,opera不支持,IE9/10和Chrome、Safari均支持
screenX/Y
screenX/Y
獲取到的是觸發點相對顯示器屏幕左上角的距離,不隨頁面滾動而改變。
兼容性:全部瀏覽器均支持
console.log(e.clientX);
}function getMouseMove(event) { var e = event || window.event;