通常用來檢測盒子的偏移、位移,都是隻讀屬性,不能賦值瀏覽器
各類特效和動畫中用的比較多,表示在頁面滑動的過程當中,捲起的部分函數
1 function scroll() { 2 //判斷返回值是否是undefined 3 if (window.pageXOffset !== undefined) { 4 return { 5 "top": window.pageYOffset, 6 "left": window.pageXOffset 7 } 8 }else if (document.documentElement === "CSS1Compat") { 9 return { 10 "top": document.documentElement.offsetTop, 11 "left": document.documentElement.offsetLeft 12 } 13 }else { 14 return { 15 "top": document.body.offsetTop, 16 "left": document.body.offsetLeft 17 } 18 } 19 20 // return { //簡寫 21 // "top": window.pageYOffset || document.documentElement.offsetTop || document.body.offsetTop, 22 // "left": window.pageXOffset || document.documentElement.offsetLeft || document.body.offsetLeft 23 // } 24 }
有了這樣的封裝函數就能夠更簡單的獲得元素在頁面或瀏覽器中的位置
var pagey = event.pageY || scroll().top + event.clientY; //後邊是兼容性的寫法,被遮擋高度 + 元素距瀏覽器高度
這是封裝的一個獲取scrollTop和scrollLeft的兼容性寫法,documentElement調用的是支持DTD,body調用的不支持DTD,pageYoffset方法是谷歌火狐IE9都支持的方法動畫
判斷當前是否聲明DTD的方法:spa
document.compatMode === "BackCompat"; //未聲明DTD document.compatMode === "CSS1Compat"; //已聲明DTD
DOM中的事件,而事件處理函數能夠附加在DOM、window這些對象上。在事件發生的時候,event對象會被建立並依次傳遞給事件監聽器,以前已經說過建立事件監聽器的方法addEventListener() 要注意的是,在IE舊版本里使用的是attchEvent()這種效果相同的方法,也能夠以此寫出兼容性的寫法。code
1 function method(event) { 2 event = event || window.event; 3 }
還有好多東西等我之後慢慢發掘,如今還不知道這個裏邊有什麼樣的奇淫技巧對象
clientWidth:盒子的可見寬度,不包括border和margin 故clientWidth = padding + widthblog
clientHeight:同上接口
clientTop:盒子上邊框的border(喵喵喵???)事件
clientLeft:同上io
clientWidth = width + border
offsetWidth = width + padding + border
scrollWidth = 內容的寬度(不含border)
clientTop:由event事件調用 表明border的寬
offsetTop:由任意元素調用,但通常是盒子 表明此盒子距離有定位的父盒子的距離
scrollTop:由window調用,盒子也能夠調用,但要有滾動條 表明被捲去的高度