亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript常見的BOM操作實例分析

發布時間:2022-06-01 13:50:55 來源:億速云 閱讀:174 作者:iii 欄目:web開發

這篇文章主要講解了“JavaScript常見的BOM操作實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript常見的BOM操作實例分析”吧!

JavaScript常見的BOM操作實例分析

window對象的常見事件

  • 窗口加載事件:

    • window.onload:頁面加載事件,當文檔內容完全加載完成會觸發該事件(包括圖像、腳本文件、CSS文件等)就調用的處理函數。

    • document.addEventListener(‘DOMContentLoaded’, function(){}):僅當DOM加載完成,不包括樣式表、圖片,flash的的,兼容性

  • 調整窗口大小的事件:

    • window.onresize:調整窗口大小加載事件

  • window.open()方法可以用于導航到指定 URL,也可以用于打開新瀏覽器窗口

    • 這個方法接收 4 個參數:要加載的 URL、目標窗口、特性字符串和表示新窗口在瀏覽器歷史記錄中是否代當前加載頁面的布爾值

    • window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");

  • 計時器:

    • setInterval(handler: any, timeout?: long, arguments…: any):循環調用

    • 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):滾動條的累加滾動,正數向下 ,負數向上 window.scrollBy(0, 10):每100毫秒調用一次的時候,滾動條運動10個像素

  • window.getComputedStyle(elem, 偽類)

  • 對話框

    • prompt(“提示字符串”,“默認值”)

    • 顯示一個輸入框,在輸入框內顯示提示字符串,等待用戶輸入

    • 當用戶單擊"確認"按鈕返回用戶輸入,單擊"取消"返回null值

    • confirm(“提示字符串”)

    • 顯示一個確認框,在確認框內顯示提示字符串

    • 當用戶單擊"確認"按鈕返回true,單擊"取消"返回false

    • alert(“提示字符串”)

    • 彈出一個警告框,在警告框內顯示提示字符串文本

    • alert

    • confirm

    • prompt

JavaScript執行機制

運行js腳本,將js代碼以同步執行方式放入執行棧,運行執行棧過程中遇見JS異步代碼(事件、計時器、ajax、資源加載load、error)放入web APIs(任務隊列),當執行棧里的代碼運行完成以后,去任務隊列里拿第一個進行執行,執行外以后在去任務隊列拿一個過來執行,反復執行(事件循環)直到任務隊列里的執行完成

location對象

window.history 用于獲取當前頁面的地址URL,并把瀏覽器重定向到新的頁面

JavaScript常見的BOM操作實例分析

http://www.itcast.cn:80/index.html?name=andy&age=1#link
http:通信協議
www.itcast.cn:域名80:端口
index.html:路徑?name=andy&age=1:參數
#link 片段:錨點、鏈接

對象屬性:

  • href*:獲取或者設置整個URL

  • host:返回主機名(域名)

  • hostname:設置或返回當前URL的主機名

  • post:返回端口號

  • pathname:返回路徑

  • search*:返回參數

  • hash:返回片段(#后面的內容)

  • protocol:設置或返回當前URL的協議

對象方法:

  • assign:和href一樣,可以跳轉頁面(也稱為重定向頁面)

  • replace:替換當前頁面,因為不記錄歷史,所以不能后退頁面

  • reload:重新加載頁面,相當于刷新功能

navigator對象

JavaScript常見的BOM操作實例分析
JavaScript常見的BOM操作實例分析

navigator:封裝瀏覽器配置信息的對象

  • cookieEnabled 當前瀏覽器是否開啟了cookie

    • cookie:在客戶端的存儲空間,且容量較小根據不同的瀏覽器有不同的大小,可以做到永久保存 密匙

    • 缺點:特別容易泄露個人信息

  • plugins 封裝了瀏覽器安裝的所有插件信息

  • userAgent 瀏覽器的名稱,內核 版本號 等一些列的字符

  • onLine 電腦是否處于脫機狀態 電腦聯網了嗎?

  • platform 返回運行瀏覽器的操作系統平臺

  • appCodeName 返回瀏覽器的代碼名

  • appName 返回瀏覽器的名稱

  • appVersion 返回瀏覽器的平臺和版本信息

history對象

window.history 對象包括瀏覽器的歷史(url)集合

  • 瀏覽器的后退功能:history.back()

  • 瀏覽器的向前功能:history.forward()

  • 進入歷史中的某一個頁面:history.go()

screen對象

window.screen 對象包含有關用戶的信息
JavaScript常見的BOM操作實例分析

// screen:獲得顯示設備的分辨率大小
// 完整的分辨率:screen.widht/height
// 如何鑒別客戶端的種類 兼容所有的客戶端 寬度
//      大屏        中屏            小屏            超小屏
//      lg          md               sm             xs
//      TV          pc               pad            phone
//寬  >= 1200      >=992            >= 768           < 768
// 全掉任務欄之后剩余的分辨率
// screen.availHeight/availWidth
  • 可用屏幕寬度:screen.availWidth

  • 可用屏幕高度:screen.availHeight

  • 屏幕高度:screen.Height

  • 屏幕寬度:screen.Width

  • 屏幕的顏色的位數:colorDepth

元素偏移量offset系列

可以動態得到該元素的位置(偏移)、大小等

  • 獲取元素距離定位父元素的位置

  • 獲取元素自身大大小

  • ps:返回的數值不帶單位

offset系列常用屬性:

  • element.offseParent:返回作為該元素帶有定位的父級元素,如果父級元素都沒有定位則返回body

  • element.offsetTop*:返回元素相對帶有定位父元素上方的偏移

  • element.offsetLeft*:返回元素相對帶有定位父元素左方的偏移

  • element.offsetWidth:返回自身包括padding、邊框、內容的寬度,不帶單位

  • element.offsetHeight:返回自身包括padding、邊框、內容的高度,不帶單位

元素可視區client系列

動態獲取元素的邊框大小、元素大小等

常用屬性:

  • element.clientTop:元素上邊框的大小

  • element.clientLeft:元素左邊框的大小

  • element.clientWidth*:返回自身包括padding、內容區的寬度,不含邊框,不帶單位

  • element.clientHeight*:返回自身包括padding、內容區的高度,不含邊框,不帶單位

元素滾動scroll系列

動態獲取元素的大小、滾動距離

常用屬性

  • element.srcollTop*:返回被卷去的上側距離,不帶單位

  • element.srcollLeft*:返回被卷去的左側距離,不帶單位

  • element.srcollWidth:返回自身實際的寬度,不含邊框,不帶單位

  • element.srcollHeight:返回自身實際的高度,不含邊框,不帶單位

滾動條在滾動的時候會觸發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/innerHeightIE8及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 標準模式

查看元素的幾何尺寸 ES5新增了解

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}
    }}

屬性

狀態欄

  • defaultStatus 改變瀏覽器狀態欄的默認顯示

  • status 臨時改變瀏覽器狀態的顯示

窗口位置

  • IE

    • screenLeft 聲明窗口的左上角的x坐標

    • screenTop 聲明窗口的左上角的y坐標

    • document.body.screenLeft

    • document.documentElement.screenLeft 聲明當前文檔向右滾動過的像素數

    • document.body.screenTop

    • document.documentElement.screenTop 聲明當前文檔向右滾動過的像素數

  • !IE

    • screenX 聲明窗口的左上角的x坐標

    • screenY 聲明窗口的左上角的y坐標

    • pageXOffset 聲明當前文檔向右滾動過的像素數

    • pageYOffset 聲明當前文檔向右滾動過的像素數

  • FF

    • innerHeight 返回窗口的文檔顯示區的高度

    • innerWidth 返回窗口的文檔顯示區的寬度

    • outerWidth 返回窗口外部寬度

    • outerHeight 返回窗口外部高度

其他屬性

  • opener 可以實現同域名下跨窗體之間的通訊 一個窗體要包含另一個窗體的opener

  • closed 當前窗口關閉時返回true

  • name 設置或返回窗口的名稱

  • self 返回對當前窗口的引用

感謝各位的閱讀,以上就是“JavaScript常見的BOM操作實例分析”的內容了,經過本文的學習后,相信大家對JavaScript常見的BOM操作實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘肃省| 麟游县| 康平县| 绍兴县| 兴和县| 皮山县| 淅川县| 清水河县| 津市市| 瓦房店市| 旬阳县| 河东区| 沂水县| 台江县| 昭觉县| 安西县| 盐城市| 象山县| 寻乌县| 孝昌县| 沂南县| 南昌市| 武邑县| 垣曲县| 广安市| 遂川县| 张家川| 马公市| 龙山县| 苏尼特右旗| 崇信县| 尉氏县| 噶尔县| 靖宇县| 延安市| 翼城县| 漯河市| 丰顺县| 西安市| 永宁县| 德惠市|