【相關推薦:、】
視窗載入事件:
調整視窗大小的事件:
window.open()方法可以用於導航到指定 URL,也可以用於開啟新瀏覽器視窗
window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");
計時器:
window.scroll(x, y)
window.scrollTo(x, y):兩者是一樣的用法 改變橫向和垂直的卷軸的位置,前提是必須有卷軸在頁面中
window.scrollBy(x, y):卷軸的累加捲動,正數向下 ,負數向上 window.scrollBy(0, 10):每100毫秒呼叫一次的時候,卷軸運動10個畫素
window.getComputedStyle(elem, 偽類)
對話方塊
執行js指令碼,將js程式碼以同步執行方式放入執行棧,執行執行棧過程中遇見JS非同步程式碼(事件、計時器、ajax、資源載入load、error)放入web APIs(任務佇列),當執行棧裡的程式碼執行完成以後,去任務佇列裡拿第一個進行執行,執行外以後在去任務佇列拿一個過來執行,反覆執行(事件迴圈)直到任務佇列裡的執行完成
window.history 用於獲取當前頁面的地址URL,並把瀏覽器重定向到新的頁面
http://www.itcast.cn:80/index.html?name=andy&age=1#link http:通訊協定 www.itcast.cn:域名80:埠 index.html:路徑?name=andy&age=1:引數 #link 片段:錨點、連結
物件屬性:
物件方法:
navigator:封裝瀏覽器設定資訊的物件
window.history 物件包括瀏覽器的歷史(url)集合
window.screen 物件包含有關使用者的資訊
// screen:獲得顯示裝置的解析度大小 // 完整的解析度:screen.widht/height // 如何鑑別使用者端的種類 相容所有的使用者端 寬度 // 大屏 中屏 小屏 超小屏 // lg md sm xs // TV pc pad phone //寬 >= 1200 >=992 >= 768 < 768 // 全掉工作列之後剩餘的解析度 // screen.availHeight/availWidth
可以動態得到該元素的位置(偏移)、大小等
offset系列常用屬性:
動態獲取元素的邊框大小、元素大小等
常用屬性:
動態獲取元素的大小、捲動距離
常用屬性
卷軸在捲動的時候會觸發onscroll事件
window.pageXOffset/pageYOffset
IE8 及IE8以下不相容 document.body/documentElement.scrollLeft/scrollTop
相容性比較混亂,用時取兩個值相加,因為不可能存在兩個值同時有值 封裝相容性方法,求卷軸滾輪捲動距離getScrollOffet()
/* 封裝一個獲取卷軸的捲動距離 返回:x:水平卷軸捲動的距離 y:垂直卷軸捲動的距離 */function getScrollOffet(){ if(window.pageXOffset){ return {//物件的{}一定要在關鍵字後,否則系統會自動加上; 則返回值會是undefined x : window.pageXOffset, y : window.pageYOffset } }else{//相容IE8以及以下 return { x : document.body.scrollLeft + document.documentElement.scrollLeft, y : document.body.scrollTop + document.documentElement.scrollTop } }}
window.innerWidth/innerHeight
IE8及IE8以下不相容(注意:這裡的寬度和高度不包括選單欄、工具列以及卷軸等的高度) document.documentElement.clientWidth/clientHeight
標準模式下,任意瀏覽器都相容 document.body.clientWidth/clientHeight
適用於怪異某事下的瀏覽器 封裝相容性方法,返回瀏覽器視口尺寸getViewportOffset()
/*封裝返回瀏覽器視口尺寸 返回值: w :視口的寬度 h : 視口的高度 */function getViewportOffset(){ if(window.innerWidth){ return { w : window.innerWidth, h : window.innerHeight } }else{ //相容IE8以及以下的瀏覽器 if(document.compatMode == 'BackCompat'){ //怪異渲染模式下 return { w : document.body.clientWidth, h : document.body.clientHeight } }else{ // 標準模式 return { w : document.documentElement.clientWidth, h : document.documentElement.clientHeight } } }}console.log(document.compatMode);// BackCompat 怪異模式// CSS1Compat 標準模式
domElement.getBoundingClientRect()
相容性很好;返回一個物件,該物件中有left、top、right、bottom等屬性,left、top代表元素左上角的X和Y座標, right和bottom表示元素右下角的X和Y座標height 和 width屬性老版本IE未實現 返回的結果並不是’實時的’
// 獲取元素在檔案中的位置function getElementPosition(target){ // 支援 BoundingClientRect()方法 if(0 && target.getBoundingClientRect){ var pos = target.getBoundingClientRect(); return { // 涉及到卷軸有移動的情況下 加上卷軸的位置 x : pos.left + Math.max(document.body.scrollLeft, document.documentElement.scrollLeft), y : pos.top + Math.max(document.body.scrollTop, document.documentElement.scrollTop) } } else { var pos = { left : 0, top : 0 } var _elm = target; while(target.offsetParent){ if(_elm == target){//首次累加left 和 top pos.left += target.offsetLeft; pos.top += target.offsetTop; }else{ pos.left += target.offsetLeft + target.clientLeft; pos.top += target.offsetTop + target.clientTop; } // target 重新賦值 target = target.offsetParent; } return { x : pos.left, y : pos.top} }}
狀態列
視窗位置
其他屬性
【相關推薦:、】
以上就是整理總結JavaScript常見的BOM操作的詳細內容,更多請關注TW511.COM其它相關文章!