這篇文章主要講解了“JavaScript常見的BOM操作實例分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JavaScript常見的BOM操作實例分析”吧!
10年的長興網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整長興建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“長興網(wǎng)站設(shè)計”,“長興網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
窗口加載事件:
window.onload:頁面加載事件,當(dāng)文檔內(nèi)容完全加載完成會觸發(fā)該事件(包括圖像、腳本文件、CSS文件等)就調(diào)用的處理函數(shù)。
document.addEventListener(‘DOMContentLoaded’, function(){}):僅當(dāng)DOM加載完成,不包括樣式表、圖片,flash的的,兼容性
調(diào)整窗口大小的事件:
window.onresize:調(diào)整窗口大小加載事件
window.open()方法可以用于導(dǎo)航到指定 URL,也可以用于打開新瀏覽器窗口
這個方法接收 4 個參數(shù):要加載的 URL、目標(biāo)窗口、特性字符串和表示新窗口在瀏覽器歷史記錄中是否代當(dāng)前加載頁面的布爾值
window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");
計時器:
setInterval(handler: any, timeout?: long, arguments…: any):循環(huán)調(diào)用
clearInterval(handle?: long):取消setInterval
setTimeout(handler: any, timeout?: long, arguments…: any):一次性
clearTimeout(handle?: long):取消setTimeout
window.scroll(x, y)
window.scrollTo(x, y):兩者是一樣的用法 改變橫向和垂直的滾動條的位置,前提是必須有滾動條在頁面中
window.scrollBy(x, y):滾動條的累加滾動,正數(shù)向下 ,負(fù)數(shù)向上 window.scrollBy(0, 10):每100毫秒調(diào)用一次的時候,滾動條運動10個像素
window.getComputedStyle(elem, 偽類)
對話框
prompt(“提示字符串”,“默認(rèn)值”)
顯示一個輸入框,在輸入框內(nèi)顯示提示字符串,等待用戶輸入
當(dāng)用戶單擊"確認(rèn)"按鈕返回用戶輸入,單擊"取消"返回null值
confirm(“提示字符串”)
顯示一個確認(rèn)框,在確認(rèn)框內(nèi)顯示提示字符串
當(dāng)用戶單擊"確認(rèn)"按鈕返回true,單擊"取消"返回false
alert(“提示字符串”)
彈出一個警告框,在警告框內(nèi)顯示提示字符串文本
alert
confirm
prompt
運行js腳本,將js代碼以同步執(zhí)行方式放入執(zhí)行棧,運行執(zhí)行棧過程中遇見JS異步代碼(事件、計時器、ajax、資源加載load、error)放入web APIs(任務(wù)隊列),當(dāng)執(zhí)行棧里的代碼運行完成以后,去任務(wù)隊列里拿第一個進行執(zhí)行,執(zhí)行外以后在去任務(wù)隊列拿一個過來執(zhí)行,反復(fù)執(zhí)行(事件循環(huán))直到任務(wù)隊列里的執(zhí)行完成
window.history 用于獲取當(dāng)前頁面的地址URL,并把瀏覽器重定向到新的頁面
http://www.itcast.cn:80/index.html?name=andy&age=1#link http:通信協(xié)議 www.itcast.cn:域名80:端口 index.html:路徑?name=andy&age=1:參數(shù) #link 片段:錨點、鏈接
對象屬性:
href*:獲取或者設(shè)置整個URL
host:返回主機名(域名)
hostname:設(shè)置或返回當(dāng)前URL的主機名
post:返回端口號
pathname:返回路徑
search*:返回參數(shù)
hash:返回片段(#后面的內(nèi)容)
protocol:設(shè)置或返回當(dāng)前URL的協(xié)議
對象方法:
assign:和href一樣,可以跳轉(zhuǎn)頁面(也稱為重定向頁面)
replace:替換當(dāng)前頁面,因為不記錄歷史,所以不能后退頁面
reload:重新加載頁面,相當(dāng)于刷新功能
navigator:封裝瀏覽器配置信息的對象
cookieEnabled 當(dāng)前瀏覽器是否開啟了cookie
cookie:在客戶端的存儲空間,且容量較小根據(jù)不同的瀏覽器有不同的大小,可以做到永久保存 密匙
缺點:特別容易泄露個人信息
plugins 封裝了瀏覽器安裝的所有插件信息
userAgent 瀏覽器的名稱,內(nèi)核 版本號 等一些列的字符
onLine 電腦是否處于脫機狀態(tài) 電腦聯(lián)網(wǎng)了嗎?
platform 返回運行瀏覽器的操作系統(tǒng)平臺
appCodeName 返回瀏覽器的代碼名
appName 返回瀏覽器的名稱
appVersion 返回瀏覽器的平臺和版本信息
window.history 對象包括瀏覽器的歷史(url)集合
瀏覽器的后退功能:history.back()
瀏覽器的向前功能:history.forward()
進入歷史中的某一個頁面:history.go()
window.screen 對象包含有關(guān)用戶的信息
// screen:獲得顯示設(shè)備的分辨率大小 // 完整的分辨率:screen.widht/height // 如何鑒別客戶端的種類 兼容所有的客戶端 寬度 // 大屏 中屏 小屏 超小屏 // lg md sm xs // TV pc pad phone //寬 >= 1200 >=992 >= 768 < 768 // 全掉任務(wù)欄之后剩余的分辨率 // screen.availHeight/availWidth
可用屏幕寬度:screen.availWidth
可用屏幕高度:screen.availHeight
屏幕高度:screen.Height
屏幕寬度:screen.Width
屏幕的顏色的位數(shù):colorDepth
可以動態(tài)得到該元素的位置(偏移)、大小等
獲取元素距離定位父元素的位置
獲取元素自身大大小
ps:返回的數(shù)值不帶單位
offset系列常用屬性:
element.offseParent:返回作為該元素帶有定位的父級元素,如果父級元素都沒有定位則返回body
element.offsetTop*:返回元素相對帶有定位父元素上方的偏移
element.offsetLeft*:返回元素相對帶有定位父元素左方的偏移
element.offsetWidth:返回自身包括padding、邊框、內(nèi)容的寬度,不帶單位
element.offsetHeight:返回自身包括padding、邊框、內(nèi)容的高度,不帶單位
動態(tài)獲取元素的邊框大小、元素大小等
常用屬性:
element.clientTop:元素上邊框的大小
element.clientLeft:元素左邊框的大小
element.clientWidth*:返回自身包括padding、內(nèi)容區(qū)的寬度,不含邊框,不帶單位
element.clientHeight*:返回自身包括padding、內(nèi)容區(qū)的高度,不含邊框,不帶單位
動態(tài)獲取元素的大小、滾動距離
常用屬性
element.srcollTop*:返回被卷去的上側(cè)距離,不帶單位
element.srcollLeft*:返回被卷去的左側(cè)距離,不帶單位
element.srcollWidth:返回自身實際的寬度,不含邊框,不帶單位
element.srcollHeight:返回自身實際的高度,不含邊框,不帶單位
滾動條在滾動的時候會觸發(fā)onscroll事件
window.pageXOffset/pageYOffset
IE8 及IE8以下不兼容 document.body/documentElement.scrollLeft/scrollTop
兼容性比較混亂,用時取兩個值相加,因為不可能存在兩個值同時有值 封裝兼容性方法,求滾動條滾輪滾動距離getScrollOffet()
/* 封裝一個獲取滾動條的滾動距離 返回:x:水平滾動條滾動的距離 y:垂直滾動條滾動的距離 */function getScrollOffet(){ if(window.pageXOffset){ return {//對象的{}一定要在關(guān)鍵字后,否則系統(tǒng)會自動加上; 則返回值會是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
標(biāo)準(zhǔn)模式下,任意瀏覽器都兼容 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{ // 標(biāo)準(zhǔn)模式 return { w : document.documentElement.clientWidth, h : document.documentElement.clientHeight } } }}console.log(document.compatMode);// BackCompat 怪異模式// CSS1Compat 標(biāo)準(zhǔn)模式
domElement.getBoundingClientRect()
兼容性很好;返回一個對象,該對象中有l(wèi)eft、top、right、bottom等屬性,left、top代表元素左上角的X和Y坐標(biāo), right和bottom表示元素右下角的X和Y坐標(biāo)height 和 width屬性老版本IE未實現(xiàn) 返回的結(jié)果并不是’實時的’
// 獲取元素在文檔中的位置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} }}
狀態(tài)欄
defaultStatus 改變?yōu)g覽器狀態(tài)欄的默認(rèn)顯示
status 臨時改變?yōu)g覽器狀態(tài)的顯示
窗口位置
IE
screenLeft 聲明窗口的左上角的x坐標(biāo)
screenTop 聲明窗口的左上角的y坐標(biāo)
document.body.screenLeft
document.documentElement.screenLeft 聲明當(dāng)前文檔向右滾動過的像素數(shù)
document.body.screenTop
document.documentElement.screenTop 聲明當(dāng)前文檔向右滾動過的像素數(shù)
!IE
screenX 聲明窗口的左上角的x坐標(biāo)
screenY 聲明窗口的左上角的y坐標(biāo)
pageXOffset 聲明當(dāng)前文檔向右滾動過的像素數(shù)
pageYOffset 聲明當(dāng)前文檔向右滾動過的像素數(shù)
FF
innerHeight 返回窗口的文檔顯示區(qū)的高度
innerWidth 返回窗口的文檔顯示區(qū)的寬度
outerWidth 返回窗口外部寬度
outerHeight 返回窗口外部高度
其他屬性
opener 可以實現(xiàn)同域名下跨窗體之間的通訊 一個窗體要包含另一個窗體的opener
closed 當(dāng)前窗口關(guān)閉時返回true
name 設(shè)置或返回窗口的名稱
self 返回對當(dāng)前窗口的引用
感謝各位的閱讀,以上就是“JavaScript常見的BOM操作實例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JavaScript常見的BOM操作實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)站名稱:JavaScript常見的BOM操作實例分析
瀏覽路徑:http://muchs.cn/article28/gppjjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站收錄、云服務(wù)器、外貿(mào)網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)