行動裝置的份額在網路流量中大量成長,其所貢獻的網路流量非常龐大,以至於為了行動設備,我們單獨創建了一些API和設計理念。一個非常典型的例子是 W3C電池狀態API,它允許一個應用程式獲知設備的電池狀態資訊。這篇文章探討了這個新的API,為你展示如何把它整合進你現有的應用程式。
偵測設備是否支援
目前電池API依舊沒有主流支援。因此,在使用這個API之前需要確認目前裝置是否支援此API。以下所示的函數傳回一個布恩值(True/False),指示目前瀏覽器是否支援電池狀態API。
此函數首先檢測了 navigator.battery 物件是否存在。如果不存在,繼續偵測 Mozilla 專用的
navigator.mozBattery是否存在。我曾經看過有些程式碼也偵測了 webkitBattery對象,但我無法證實其在Chrome中是否存在。
參考文件:https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery
- functionisBatteryStatusSupported() {
- return!!(navigator.battery || navigator.mozBattery);
- }
檢查電池
如果電池物件存在,它會包含下列四個唯讀屬性。
- charging —— (布恩值)指示系統的電池目前是否正在充電。
若係統不存在電池,或無法確定電池是否在充電,回傳值是 True
- chargingTime —— (數值)電池完全充滿電量所需的時間(單位:秒)
當電池完全被充滿電時,或係統不存在電池時,此值為0。
若係統不在充電,或無法確定完全充飽電所需時間,此值為∞(無限大)。
- dischargingTime —— 和chargingTime相似,(數值)到電池完全放電直到系統休眠剩餘的時間(單位:秒)
若放電時間無法確定,或 系統沒有電池 或 系統正在充電,這個值為 ∞ (無限大)
- level —— (數值) 設備目前電量等級。取值在(0 ~ 1.0)區間,與剩餘電量百分比對應。
1.0表示電池完全充滿電,或不存在電池,或數值無法確定。
偵測電池事件
上述所有屬性都與一個電池事件綁定。這些事件用來指示電池狀態的變化。例如,插入電源會使charging屬性從false變成true。全部四種電池事件如下所列:
- chargingchange —— 這個類型的事件會在charging屬性改變時觸發。這個事件可以被 onchargingchange()事件處理器捕捉和處理。
chargingtimechange —— 這個類型的事件會在chargingtime屬性改變時觸發。這個事件可以被 onchargingtimechange()事件處理器捕捉和處理。
dischargingtimechange —— 這個類型的事件會在dischargingTime屬性改變時觸發。這個事件可以被 ondischargingtimechange()事件處理器捕捉並處理。
levelchange —— 這個類型的事件會在level屬性改變時觸發。這個事件可以被 onlevelchange()事件處理器捕捉並處理。
範例頁
下面的程式碼顯示如何使用 電池狀態API 的屬性和事件。
範例頁面顯示了API的各個屬性值,並且在事件觸發時更新它們的值。
點擊此處訪問線上範例。
- html>
-
htmllanghtmllang="en="en"
- 標題>電池狀態API - 範例>標題>
- 元字符集元字符集="UTF-8"/>
- 腳本>
- window.addEventListener("load", function() {
var 電池 = 導航器
.電池o> - 函數 displayBatteryStats() {
- document.getElementById("正在充電").textContent 🎜> document.getElementById("充電時間") .textContent
- 🎜> document.getElementById("dischargingtime").textContent =mm.textContent =Sm .textContent
- 🎜 > document.getElementById("level").textContent > }
- 如果(電池) { displayBatteryStats(); battery.addEventListener("chargingchange", displayBatteryStats, false);
- battery.addEventListener("chargingtimechange", displayBatteryStats, false);
- battery.addEventListener("dischargingtimechange", displayBatteryStats, false);
- battery.addEventListener("levelchange", displayBatteryStats, false);
- } 其他 {
- document.getElementById("stats")
- .textContent == > ;
- }
- }, 錯誤的);
- 腳本>
- 頭>
- 身體>
-
除除=「統計」=「統計」
- 您的電池目前為
spanidspanid=spanid=spanid 🎜 >>跨度>.
br/>
您的電池將在spanidspanid=spanid=spanid=spanid > - 跨度> 秒。 br/> 您的電池將在spanidspanid=spanid =
- spanid=spanid放電>跨度> 秒。 br />
- 您的電池電量為spanid spanid
- >>跨度>%。
- div>
身體
>

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

固定方法:1、使用header标签定义文档头部内容,并添加“position:fixed;top:0;”样式让其固定不动;2、使用footer标签定义尾部内容,并添加“position: fixed;bottom: 0;”样式让其固定不动。

html5中不支持的标签有:1、acronym,用于定义首字母缩写,可用abbr替代;2、basefont,可利用css样式替代;3、applet,可用object替代;4、dir,定义目录列表,可用ul替代;5、big,定义大号文本等等。

HTML5中画布标签是“<canvas>”。canvas标签用于图形的绘制,它只是一个矩形的图形容器,绘制图形必须通过脚本(通常是JavaScript)来完成;开发者可利用多种js方法来在canvas中绘制路径、盒、圆、字符以及添加图像等。

html5废弃了dir列表标签。dir标签被用来定义目录列表,一般和li标签配合使用,在dir标签对中通过li标签来设置列表项,语法“<dir><li>列表项值</li>...</dir>”。HTML5已经不支持dir,可使用ul标签取代。

3种取消方法:1、给td元素添加“border:none”无边框样式即可,语法“td{border:none}”。2、给td元素添加“border:0”样式,语法“td{border:0;}”,将td边框的宽度设置为0即可。3、给td元素添加“border:transparent”样式,语法“td{border:transparent;}”,将td边框的颜色设置为透明即可。

因为html5不基于SGML(标准通用置标语言),不需要对DTD进行引用,但是需要doctype来规范浏览器的行为,也即按照正常的方式来运行,因此html5只需要写doctype即可。“!DOCTYPE”是一种标准通用标记语言的文档类型声明,用于告诉浏览器编写页面所用的标记的版本。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境