1 網絡狀态
我們可以通過window.navigator.onLine來檢測,使用者目前的網絡狀況,傳回一個布爾值, 但是不同浏覽器會存在差異
是以HTML5 給我們提供了2個事件 online 和 offline
online使用者網絡連接配接時被調用
offline使用者網絡斷開時被調用
他們監聽的對象都是window
2 全屏
HTML5規範允許使用者自定義網頁上任一進制素全屏顯示。
1、Node.requestFullScreen() 開啟全屏顯示
2、Node.cancelFullScreen() 關閉全屏顯示
由于其相容性原因,不同浏覽器需要添加字首如:
webkit核心浏覽器:webkitRequestFullScreen、webkitCancelFullScreen,如chrome浏覽器。
Gecko核心浏覽器:mozRequestFullScreen、mozCancelFullScreen,如火狐浏覽器。
ms 微軟 msRequestFullscreen
3、document.fullScreen檢測目前是否處于全屏
不同浏覽器需要添加字首
document.webkitIsFullScreen、document.mozFullScreen
全屏僞類選擇器 也有相容性問題 需要添加字首思密達
:full-screen 、:-webkit-full-screen {}、:moz-full-screen {}
3 檔案讀取
我們想: 可以吧上傳的檔案,内容顯示到頁面? 或者 上傳完畢圖檔顯示縮略圖到頁面上。。。
通過FileReader對象我們可以讀取本地存儲的檔案,使用 File 對象來指定所要讀取的檔案或資料。其中File對象可以是來自使用者在一個 元素上選擇檔案後傳回的FileList 對象,也可以來自由拖放操作生成的 DataTransfer
3.1 Files對象
由于HTML5中我們可以通過為表單元素添加multiple屬性,是以我們通過上傳檔案後得到的是一個Files對象(僞數組形式)。
3.2FileReader對象
HTML5新增内建對象,可以讀取本地檔案内容。
var reader = new FileReader; 可以執行個體化一個對象
執行個體方法
1、readAsDataURL() 以DataURL形式讀取檔案
事件監聽
onload 當文讀取完成時調用
屬性
result 檔案讀取結果
參考資料
https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
4 地理定位
在HTML規範中,增加了擷取使用者地理資訊的API,這樣使得我們可以基于使用者位置開發網際網路應用,即基于位置服務 (Location Base Service)
4.1 API詳解
1、擷取目前地理資訊
navigator.geolocation.getCurrentPosition(successCallback, errorCallback)
2、重複擷取目前地理資訊
navigator. geolocation.watchPosition(successCallback, errorCallback)
當成功擷取地理資訊後,會調用succssCallback,并傳回一個包含位置資訊的對象position。
position.coords.latitude 緯度
position.coords.longitude經度
position.coords.accuracy精度
position.coords.altitude海拔高度
當擷取地理資訊失敗後,會調用errorCallback,并傳回錯誤資訊error
http://www.w3school.com.cn/html5/html_5_geolocation.asp
4.2 應用
在現實開發中,通過調用第三方API(如百度地圖)來實作地理定位資訊,這些API都是基于使用者目前位置的,并将用位置位置(經/緯度)當做參數傳遞,就可以實作相應的功能。
http://lbsyun.baidu.com/ 百度地圖api
5 拖拽
在 HTML5 中,拖放是标準的一部分,任何元素都能夠拖放。
5.1 拖拽和釋放
拖拽:Drag
釋放:Drop
拖拽指的是滑鼠點選源對象後一直移動對象不松手,一但松手即釋放了
5.2 設定元素為可拖放
draggable 屬性:就是标簽元素要設定draggable=true,否則不會有效果
注意: 連結和圖檔預設是可拖動的,不需要 draggable 屬性。
5.2 拖拽API的相關事件
被拖動的源對象可以觸發的事件:
(1)ondragstart:源對象開始被拖動
(2)ondrag:源對象被拖動過程中(滑鼠可能在移動也可能未移動)
(3)ondragend:源對象被拖動結束
拖動源對象可以進入到上方的目标對象可以觸發的事件:
(1)ondragenter:目标對象被源對象拖動着進入
(2)ondragover:目标對象被源對象拖動着懸停在上方
(3)ondragleave:源對象拖動着離開了目标對象
(4)ondrop:源對象拖動着在目标對象上方釋放/松手
拖拽API總共就是7個函數!!
5.3 DataTransfer
在進行拖放操作時,
DataTransfer
對象用來儲存被拖動的資料。它可以儲存一項或多項資料、一種或者多種資料類型
6 Web存儲
随着網際網路的快速發展,基于網頁的應用越來越普遍,同時也變的越來越複雜,為了滿足各種各樣的需求,會經常性在本地存儲大量的資料,HTML5規範提出了相關解決方案。
6.1 特性
1、設定、讀取友善、頁面重新整理不丢失資料
2、容量較大,sessionStorage約5M、localStorage約20M
4、隻能存儲字元串,可以将對象JSON.stringify() 編碼後存儲
6.2 window.sessionStorage
1、生命周期為關閉浏覽器視窗
2、在同一個視窗(頁面)下資料可以共享
6.3 window.localStorage
1、永久生效,除非手動删除 關閉頁面也會存在
2、可以多視窗(頁面)共享(同一浏覽器可以共享)
6.4 方法詳解
setItem(key, value) 設定存儲内容
getItem(key) 讀取存儲内容
removeItem(key) 删除鍵值為key的存儲内容
clear() 清空所有存儲内容
6.5 其它
WebSQL、IndexDB
7 應用緩存
HTML5中我們可以輕松的建構一個離線(無網絡狀态)應用,隻需要建立一個cache manifest檔案。
7.1 優勢
1、可配置需要緩存的資源
2、網絡無連接配接應用仍可用
3、本地讀取緩存資源,提升通路速度,增強使用者體驗
4、減少請求,緩解伺服器負擔
7.2 緩存清單
一個普通文本檔案,其中列出了浏覽器應緩存以供離線通路的資源,推薦使用.appcache為字尾名
例如我們建立了一個名為demo.appcache的檔案,然後在需要應用緩存在頁面的根元素(html)添加屬性manifest=“demo.appcache”,路徑要保證正确。
7.3 manifest檔案格式*
1、頂行寫CACHE MANIFEST
2、CACHE: 換行 指定我們需要緩存的靜态資源,如.css、image、js等
3、NETWORK: 換行 指定需要線上通路的資源,可使用通配符
4、FALLBACK: 換行 當被緩存的檔案找不到時的備用資源
7.4 其它
1、CACHE: 可以省略,這種情況下将需要緩存的資源寫在CACHE MANIFEST
2、可以指定多個CACHE: NETWORK: FALLBACK:,無順序限制
3、#表示注釋,隻有當demo.appcache檔案内容發生改變時或者手動清除緩存後,才會重新緩存。
4、chrome 可以通過chrome://appcache-internals/工具和離線(offline)模式來調試管理應用緩存
8 多媒體
方法:load()、play()、pause()
屬性:currentSrc、currentTime、duration
事件:oncanplay, ontimeupdate,onended 等
參考文檔
http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp