整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript學習筆記(十二)-BOM

          JavaScript學習筆記(十二)-BOM

          OM

          • 今天開始我們開始使用 js 去操作瀏覽器和頁面中的 html 元素了

          BOM

          • BOM(Browser Object Model): 瀏覽器對象模型
          • 其實就是操作瀏覽器的一些能力
          • 我們可以操作哪些內容
          • 獲取一些瀏覽器的相關信息(窗口的大小)
          • 操作瀏覽器進行頁面跳轉
          • 獲取當前瀏覽器地址欄的信息
          • 操作瀏覽器的滾動條
          • 瀏覽器的信息(瀏覽器的版本)
          • 讓瀏覽器出現一個彈出框(alert/confirm/prompt)
          • BOM 的核心就是 window 對象
          • window 是瀏覽器內置的一個對象,里面包含著操作瀏覽器的方法

          獲取瀏覽器窗口的尺寸

          • innerHeight 和 innerWidth
          • 這兩個方法分別是用來獲取瀏覽器窗口的寬度和高度(包含滾動條的)
          var windowHeight=window.innerHeight
          console.log(windowHeight)
          ?
          var windowWidth=window.innerWidth
          console.log(windowWidth)

          瀏覽器的彈出層

          • alert 是在瀏覽器彈出一個提示框
          window.alert('我是一個提示框')
          • 這個彈出層只是一個提示內容,只有一個確定按鈕
          • 點擊確定按鈕以后,這個提示框就消失了

          • confirm 是在瀏覽器彈出一個詢問框
          var boo=window.confirm('我是一個詢問框')
          console.log(boo)
          • 這個彈出層有一個詢問信息和兩個按鈕
          • 當你點擊確定的時候,就會得到 true
          • 當你點擊取消的時候,就會得到 false



          • prompt 是在瀏覽器彈出一個輸入框
          var str=window.prompt('請輸入內容')
          console.log(str)
          • 這個彈出層有一個輸入框和兩個按鈕
          • 當你點擊取消的時候,得到的是 null
          • 當你點擊確定的時候得到的就是你輸入的內容

          瀏覽器的地址信息

          • 在 window 中有一個對象叫做 location
          • 就是專門用來存儲瀏覽器的地址欄內的信息的

          location.href

          • location.href 這個屬性存儲的是瀏覽器地址欄內 url 地址的信息
          console.log(window.location.href)
          • 會把中文編程 url 編碼的格式
          • location.href 這個屬性也可以給他賦值
          window.location.href='./index.html'
          // 這個就會跳轉頁面到后面你給的那個地址

          location.reload

          • location.reload() 這個方法會重新加載一遍頁面,就相當于刷新是一個道理
          window.location.reload()
          • 注意: 不要寫在全局,不然瀏覽器就會一直處在刷新狀態

          瀏覽器的歷史記錄

          • window 中有一個對象叫做 history
          • 是專門用來存儲歷史記錄信息的

          history.back

          • history.back 是用來會退歷史記錄的,就是回到前一個頁面,就相當于瀏覽器上的 ?? 按鈕 window.history.back()
          • 前提是你要有上一條記錄,不然就是一直在這個頁面,也不會回退

          history.forword

          • history.forword 是去到下一個歷史記錄里面,也就是去到下一個頁面,就相當于瀏覽器上的 ?? 按鈕 window.history.forward()
          • 前提是你要之前有過回退操作,不然的話你現在就是最后一個頁面,沒有下一個

          瀏覽器的版本信息(了解)

          • window 中有一個對象叫做 navigator
          • 是專門用來獲取瀏覽器信息的

          navigator.userAgent

          • navigator.userAgent 是獲取的瀏覽器的整體信息
          console.log(window.navigator.userAgent)
          // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

          navigator.appName

          • navigator.appName 獲取的是瀏覽器的名稱
          console.log(window.navigator.appName)

          navigator.appVersion

          • navigator.appVersion 獲取的是瀏覽器的版本號
          console.log(window.navigator.appVersion)

          navigator.platform

          • navigator.platform 獲取到的是當前計算機的操作系統
          console.log(window.navigator.platform)

          瀏覽器的 onload 事件

          • 這個不再是對象了,而是一個事件
          • 是在頁面所有資源加載完畢后執行的
          window.onload=function () {
              console.log('頁面已經加載完畢')
          }

          在 html 頁面中把 js 寫在 head 里面

          <html>
            <head>
              <meta charset="UTF-8" />
              <script>
                  // 這個代碼執行的時候,body 還沒有加載
                // 這個時候我們就獲取不到 body 中的那個 div
                
                // 就需要使用 window.onload 事件
                window.onload=function () {
                  // 這個函數會在頁面加載完畢以后在執行
                  // 那么這個時候頁面的 DOM 元素都已經加載了,我們就可以獲取 div 了
                }
              </script>
            </head>
            <body>
              <div></div>
            </body>
          </html>

          在 html 頁面中把 js 寫在 body 最后面

          <html>
            <head>
              <meta charset="UTF-8" />
            </head>
            <body>
              <div></div>
              
              <script>
                  // 這個代碼執行的時候,body 已經加載完畢了
                // 在這里就可以獲取到 div,寫不寫 window.onload 就無所謂了
                
                window.onload=function () {
                  // 這個函數會在頁面加載完畢以后在執行
                  // 那么這個時候頁面的 DOM 元素都已經加載了,我們就可以獲取 div 了
                }
              </script>
            </body>
          </html>

          瀏覽器的 onscroll 事件

          • 這個 onscroll 事件是當瀏覽器的滾動條滾動的時候觸發
          • 或者鼠標滾輪滾動的時候出發
          window.onscroll=function () {
           console.log('瀏覽器滾動了')
          }
          
          
          • 注意:前提是頁面的高度要超過瀏覽器的可視窗口才可以

          瀏覽器滾動的距離

          • 瀏覽器內的內容既然可以滾動,那么我們就可以獲取到瀏覽器滾動的距離
          • 思考一個問題?
          • 瀏覽器真的滾動了嗎?
          • 其實我們的瀏覽器是沒有滾動的,是一直在那里
          • 滾動的是什么?是我們的頁面
          • 所以說,其實瀏覽器沒有動,只不過是頁面向上走了
          • 所以,這個已經不能單純的算是瀏覽器的內容了,而是我們頁面的內容
          • 所以不是在用 window 對象了,而是使用 document 對象

          scrollTop

          • 獲取的是頁面向上滾動的距離
          • 一共有兩個獲取方式
          • document.body.scrollTop
          • document.documentElement.scrollTop
          window.onscroll=function () {
           console.log(document.body.scrollTop)
           console.log(document.documentElement.scrollTop)
          }
          • 兩個都是獲取頁面向上滾動的距離
          • 區別:
          • IE 瀏覽器
          • 沒有 DOCTYPE 聲明的時候,用這兩個都行
          • 有 DOCTYPE 聲明的時候,只能用 document.documentElement.scrollTop
          • Chrome 和 FireFox
          • 沒有 DOCTYPE 聲明的時候,用 document.body.scrollTop
          • 有 DOCTYPE 聲明的時候,用 document.documentElement.scrollTop
          • Safari
          • 兩個都不用,使用一個單獨的方法 window.pageYOffset

          scrollLeft

          • 獲取頁面向左滾動的距離
          • 也是兩個方法
          • document.body.scrollLeft
          • document.documentElementLeft
          window.onscroll=function () {
           console.log(document.body.scrollLeft)
           console.log(document.documentElement.scrollLeft)
          }
          • 兩個之間的區別和之前的 scrollTop 一樣

          定時器

          • 在 js 里面,有兩種定時器,倒計時定時器間隔定時器

          倒計時定時器

          • 倒計時多少時間以后執行函數
          • 語法: setTimeout(要執行的函數,多長時間以后執行)
          • 會在你設定的時間以后,執行函數
          var timerId=setTimeout(function () {
           console.log('我執行了')
          }, 1000)
          console.log(timerId) // 1
          • 時間是按照毫秒進行計算的,1000 毫秒就是 1秒鐘
          • 所以會在頁面打開 1 秒鐘以后執行函數
          • 只執行一次,就不再執行了
          • 返回值是,當前這個定時器是頁面中的第幾個定時器

          間隔定時器

          • 每間隔多少時間就執行一次函數
          • 語法: setInterval(要執行的函數,間隔多少時間)
          var timerId=setInterval(function () {
           console.log('我執行了')
          }, 1000)
          • 時間和剛才一樣,是按照毫秒進行計算的
          • 每間隔 1 秒鐘執行一次函數
          • 只要不關閉,會一直執行
          • 返回值是,當前這個定時器是頁面中的第幾個定時器

          定時器的返回值

          • 設置定時器的時候,它的返回值是部分 setTimeout 和 setInterval 的
          • 只要有一個定時器,那么就是一個數字
          var timerId=setTimeout(function () {
           console.log('倒計時定時器')
          }, 1000)
          ?
          var timerId2=setInterval(function () {
           console.log('間隔定時器')
          }, 1000)
          ?
          console.log(timerId) // 1
          console.log(timerId2) // 2

          關閉定時器

          • 我們剛才提到過一個 timerId,是表示這個定時器是頁面上的第幾個定時器
          • 這個 timerId 就是用來關閉定時器的數字
          • 我們有兩個方法來關閉定時器 clearTimeout 和 clearInterval
          var timerId=setTimeout(function () {
           console.log('倒計時定時器')
          }, 1000)
          clearTimeout(timerId)
          • 關閉以后,定時器就不會再執行了
          var timerId2=setInterval(function () {
           console.log('間隔定時器')
          }, 1000)
          coearInterval(timerId2)
          • 關閉以后定時器就不會再執行了
          • 原則上是
          • clearTimeout 關閉 setTimeout
          • clearInterval 關閉 setInterval
          • 但是其實是可以通用的,他們可以混著使用

          互聯網高速發展的今天,我們通過瀏覽器可以看到各種各樣的網站,包含了各式不同的領域還有內容,通過點擊網站上的標簽和欄目我們就能夠很方便地看到網站上顯示的各種數據,而這些都是建立在HTML這種標記語言的基礎上做到的。

          HTML的英文全稱為Hyper Text Markup Language,中文稱作超文本標記語言,是一種專門用來建立網站的標識語言。其中包括了許多標簽將分散的網絡數據連接到一起,聚合同一之后形成了我們現在所看到的網頁。

          看到這里是不是有許多朋友想要知道這個HTML語言該怎么去學習呢?是需要找老師統一學,還是去圖書館找專業書籍自己學好呢?不用擔心,因為今天要給大家推薦的就是一個專門為大家提供各種編程語言教程的學習網站。

          這個網站名叫 runoob,直接在瀏覽器上搜索即可找到。


          圖片來自RUNOOB網頁截圖

          在首頁可以看到該欄目的第二個就是關于HTML的學習教程,點擊左邊的方框可以調整你的課程進度,在第一章節的教程中很清晰地講解了什么是HTML,以及告訴了你一些關于網站建立的小知識。

          下方的提示框會給你提供一些對HTML零基礎新手的科普,關于這種標記語言應該如何進行保存,如何查看文件后輟名,如何打開代碼文件等等,還會提供一些專用工具供你學習使用。同時網站會給你簡單介紹一些網頁編程語言的區別,還有各種用途上的區分,非常地詳細。


          圖片來自RUNOOB網頁截圖

          在第三章節的編輯器一欄里,會提供給你一些HTML的專用編輯器,例如VS Code,還有sublime text 等實用工具,在后面會教你如何將這些HTML必備編輯器下載并安裝,然后在瀏覽器上面運行。

          通過插件還有語言編程的格式我們就能夠學會如何制作第一步的標題了,剛開始的一步比較簡單,相信大家很快就能學會如何在網頁上顯示自己打入的文字了。之后進一步的學習就是關于如何調整文字段落,還有各種標識的使用。


          圖片來自RUNOOB網頁截圖

          在如何進行文字排版編輯的方面,教程中也講述得很詳細,包括一些用戶們常犯的錯誤,還有一些網頁的實例,甚至是這個教學網站上的排版示范都會進行一一講解。

          更深入的章節會對如何進行圖像排列,傳輸等方面進行細講,教程中把大部分網站會使用到的技巧還有排版方式都分成了許多個小片段,方便大家能夠對每個方面針對性地學習。這些內容并不多,幾乎每一個片段都是用很直白的語言進行講解,方便所有人都能夠看懂,并且在下方都會有更詳細的術語解析,還有一些比較難懂的點會舉例解釋。


          圖片來自RUNOOB網頁截圖

          經過十幾章節的教學之后,基本上能夠掌握HTML語言的基本用法,還有一些簡單的操作了,這個時候如果想要進階學習的話還可以在網站上查找其他的進階語言用法,例如CSS, JavaScript等等復雜一些的語言,相應的你也會學到更多如何運營網頁的方法。

          當然如果想要自己建立一個網站的話,還需要更多資源還有設備,例如高速的網絡連接保持網頁的穩定性,以及穩定的服務器,用來保證自己的網頁24小時都能保持流暢可用。不過這些都是在學會了如何建立網頁之后才考慮的事了。



          現在網上也有許多編程教學,在網上自學一門知識一門語言變得非常方便,但是僅僅是擁有資源還是不夠的。學習如何建立自己的網站還需要大量的努力以及知識的積累,通過不斷的練習還有實踐才能自如地使用,只有基礎扎實,建立出來的網站才能夠長久。但還需要大家能夠行動起來,只有去學習去實踐才能夠真正學會東西,希望這個教學網站推薦能夠幫到更多人!

          tml代碼里,表示顏色一般用兩種方法,一種是直接寫出顏色的英文,另一種是前面寫個“#”后面再寫6個數字字母。

          先說第一種表示方法,這個很簡單,如果要表示黑色直接就是black,紅色就red,藍色就blue。具體的我們看下面圖1,圖2

          圖1

          圖2

          現在來說第二種,這也是我們這個文章要重點說的,因為這個也是最經常用的表示方法,很多人看到這個又是字數又是字母的就糊涂了,今天我們來詳細的把它講清楚。先用圖片來說明一下,先看下面圖3

          圖3

          圖3里的#000000表示的是黑色,#ff0000表示紅色,#00ff00表示綠色,所以說這個效果是和圖1一樣的。那要怎么理解這種表示顏色的方法呢,我們再來列出幾個顏色和它的表示法:

          紅色:#ff0000,綠色:#00ff00,藍色:#0000ff, 大家仔細看一下就可發現,這個和我們平常說的RGB格式來表示顏色是一樣的,相當于紅綠藍三個光,而f是十六進制中的0,1,2,.....e,f中的f了 。f是里面的最大值了,ff代表該顏色光的值達到最大,所以#ff0000是紅色,#880000表示的也是紅色,只是沒有#ff0000這個那么紅了。其他的也是同理。所以#000000代表三個顏色光的值都為0,沒有任何光了,那就是黑色了,相反#ffffff代表三個顏色光的值都達到最大,混合在一起就成白色。我們也知道紅光和藍光混在一起是紫色的,所以#ff00ff表示的是紫色,同樣#ffff00表示的是黃色。講到這里相信大家應該都明白了怎樣用這種方法表示顏色了吧,如果要表示一種顏色,只要把相應的值增加或減小或者添加另一個顏色,這樣就可以得到千千萬萬種顏色了。

          這兩種表示顏色的方法都講完了,尤其是第二種方法,大部分情況都是用這種方法來表示html里面的顏色的。如果大家有什么更好的更容易理解的想法,可以點擊關注【點點有你】一起來討論一下哦

          最后,如果您覺得我寫的這些文章對您有幫助的話,您可以根據您的情況隨意給點賞金,我相信一分也是愛也是支持,下面兩圖是我的支付寶和微信收款碼。當然寫文章不是一定要讓您給賞金的,有您的支持和贊助,我會有更多動力來寫文章和大家分享的,再次感謝您的支持和理解!


          主站蜘蛛池模板: 亚洲欧美日韩国产精品一区| 久热国产精品视频一区二区三区| 亚洲制服丝袜一区二区三区| 国产婷婷色一区二区三区深爱网| 91video国产一区| AV怡红院一区二区三区| 精品午夜福利无人区乱码一区| 好看的电影网站亚洲一区| 日本人真淫视频一区二区三区| 亚洲一区二区三区高清不卡| 亚洲AV综合色区无码一区爱AV | 福利片福利一区二区三区| 奇米精品视频一区二区三区| 国模丽丽啪啪一区二区| AV怡红院一区二区三区| 无码人妻精品一区二| 精品视频一区二区| 国产麻豆剧果冻传媒一区| 精品国产一区二区三区久 | 日本一区二区三区日本免费 | 国产一区二区三区四| 无码人妻aⅴ一区二区三区有奶水| 色窝窝无码一区二区三区 | 国产一区二区中文字幕| 成人乱码一区二区三区av| 精品成人一区二区三区四区| 国产伦精品一区二区三区视频猫咪| 白丝爆浆18禁一区二区三区| 亚洲AV成人精品日韩一区18p | 国产在线乱子伦一区二区| 亚洲蜜芽在线精品一区| 99热门精品一区二区三区无码| 亚洲Av无码一区二区二三区| 极品人妻少妇一区二区三区| 亚洲国产欧美日韩精品一区二区三区| 亚洲综合无码一区二区痴汉| 精品无码国产AV一区二区三区| 国产精品一区二区资源| 青娱乐国产官网极品一区 | 糖心vlog精品一区二区三区| 国产精品福利一区|