DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> 你可能不知道的5個功能強大的 HTML5 API
你可能不知道的5個功能強大的 HTML5 API
編輯:HTML5詳解     
Html5 新增了許多重要的特性,像 video、audio 和 canvas 等等,這些特性使得能夠很容易的網頁中包含多媒體內容,而不需要任何的插件或者 API。而其它的新元素,例如 section、article、header 和 nav 等則是用來豐富網頁內容。另外還有很多強大的 JavaScript API,下面這5個 Html5 API 你可能不知道,通過今天這篇文章可以了解一下。

Fullscreen API

  這個 Html5 全屏 API 讓 Web 開發者可以通過編程控制頁面的全屏顯示。這個 API 對於 JavaScript 游戲開發特別有用,例如這款單人射擊游戲 BananaBread,在全屏狀態下玩那是相當酷。



[backcolor=rgb(248, 248, 248) !important]1
2
[backcolor=rgb(248, 248, 248) !important]3
4
[backcolor=rgb(248, 248, 248) !important]5
6
[backcolor=rgb(248, 248, 248) !important]7
8
[backcolor=rgb(248, 248, 248) !important]9
10
[backcolor=rgb(248, 248, 248) !important]11
12
[backcolor=rgb(248, 248, 248) !important]13
14
  [backcolor=rgb(248, 248, 248) !important]// 根據目標元素調用相應的方法
function launchFullScreen(element) {
[backcolor=rgb(248, 248, 248) !important] if(element.requestFullScreen) {
element.requestFullScreen();
[backcolor=rgb(248, 248, 248) !important] } else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
[backcolor=rgb(248, 248, 248) !important] } else if(element.webkitRequestFullScreen) {
element.webkitRequestFullScreen();
[backcolor=rgb(248, 248, 248) !important] }
}

// 在支持的浏覽器中啟動全屏
[backcolor=rgb(248, 248, 248) !important]launchFullScreen(document.documentElement); // 整個頁面
launchFullScreen(document.getElementById("videoElement")); // 單個元素

 

  使用教程 在線演示
Page Visibility API   Page Visibility API 可以幫助開發者監聽用戶的焦點在哪個頁面選項卡上面以及用戶在選項庫或者窗口之間的移動情況。如果使用合理的話,當焦點不在某個頁面上的時候可以停止一些消耗很大的任務。[size=1em] [color=rgb(255, 255, 255) !important]?  
[backcolor=rgb(248, 248, 248) !important]1
2
[backcolor=rgb(248, 248, 248) !important]3
4
[backcolor=rgb(248, 248, 248) !important]5
6
[backcolor=rgb(248, 248, 248) !important]7
8
[backcolor=rgb(248, 248, 248) !important]9
10
[backcolor=rgb(248, 248, 248) !important]11
12
[backcolor=rgb(248, 248, 248) !important]13
14
[backcolor=rgb(248, 248, 248) !important]15
16
[backcolor=rgb(248, 248, 248) !important]17
18
[backcolor=rgb(248, 248, 248) !important]19
20
[backcolor=rgb(248, 248, 248) !important]21
22
[backcolor=rgb(248, 248, 248) !important]23
24
[backcolor=rgb(248, 248, 248) !important]25
  [backcolor=rgb(248, 248, 248) !important]// 部分浏覽器只支持 vendor-prefixed
// 根據浏覽器支持情況設置隱藏屬性和可見狀態改變事件
[backcolor=rgb(248, 248, 248) !important]var hidden, state, visibilityChange; 
if (typeof document.hidden !== "undefined") {
[backcolor=rgb(248, 248, 248) !important] hidden = "hidden";
visibilityChange = "visibilitychange";
[backcolor=rgb(248, 248, 248) !important] state = "visibilityState";
} else if (typeof document.mozHidden !== "undefined") {
[backcolor=rgb(248, 248, 248) !important] hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
[backcolor=rgb(248, 248, 248) !important] state = "mozVisibilityState";
} else if (typeof document.msHidden !== "undefined") {
[backcolor=rgb(248, 248, 248) !important] hidden = "msHidden";
visibilityChange = "msvisibilitychange";
[backcolor=rgb(248, 248, 248) !important] state = "msVisibilityState";
} else if (typeof document.webkitHidden !== "undefined") {
[backcolor=rgb(248, 248, 248) !important] hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
[backcolor=rgb(248, 248, 248) !important] state = "webkitVisibilityState";
}

// 添加一個時間來實時改變頁面的標題
[backcolor=rgb(248, 248, 248) !important]document.addEventListener(visibilityChange, function(e) {
// Start or stop processing depending on state
[backcolor=rgb(248, 248, 248) !important]}, false);

 


  使用教程 在線演示
Supporting visibilityChange in MooTools MooTools doesn't support visibilityChange out of the box, so you'll need to add this bit of JavaScript:// Set it up!Element.NativeEvents[visibilityChange] = 2;Element.Events[visibilityChange] = { base: visibilityChange, condition: function(event) { event[state] = document[state]; event.visibilityState = document[state]; return true; }};// Now use it!document.addEvent(visibilityChange, function(e) { document.title = document[state];}); Don't you love it when it's that easy?! This mirror the code needed toadd onMessage events to the list of supported events.
getUserMedia API   特別有趣的一個 API,能夠調用電腦的攝像頭,結合 <video> 標簽和 Canvas 就能在浏覽器中拍攝照片了。未來這個 API 將被廣泛用來讓浏覽器和用戶之間互動。[size=1em] [color=rgb(255, 255, 255) !important]?  
[backcolor=rgb(248, 248, 248) !important]1
2
[backcolor=rgb(248, 248, 248) !important]3
4
[backcolor=rgb(248, 248, 248) !important]5
6
[backcolor=rgb(248, 248, 248) !important]7
8
[backcolor=rgb(248, 248, 248) !important]9
10
[backcolor=rgb(248, 248, 248) !important]11
12
[backcolor=rgb(248, 248, 248) !important]13
14
[backcolor=rgb(248, 248, 248) !important]15
16
[backcolor=rgb(248, 248, 248) !important]17
18
[backcolor=rgb(248, 248, 248) !important]19
20
[backcolor=rgb(248, 248, 248) !important]21
22
[backcolor=rgb(248, 248, 248) !important]23
24
  [backcolor=rgb(248, 248, 248) !important]// 添加事件監聽器
window.addEventListener("DOMContentLoaded", function() {
[backcolor=rgb(248, 248, 248) !important] // 獲取元素,創建配置
var canvas = document.getElementById("canvas"),
[backcolor=rgb(248, 248, 248) !important] context = canvas.getContext("2d"),
video = document.getElementById("video"),
[backcolor=rgb(248, 248, 248) !important] videoObj = { "video": true },
errBack = function(error) {
[backcolor=rgb(248, 248, 248) !important] console.log("Video capture error: ", error.code); 
};

// 添加視頻監聽器
[backcolor=rgb(248, 248, 248) !important] if(navigator.getUserMedia) { // 標准的API
navigator.getUserMedia(videoObj, function(stream) {
[backcolor=rgb(248, 248, 248) !important] video.src = stream;
video.play();
[backcolor=rgb(248, 248, 248) !important] }, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit 核心的API
[backcolor=rgb(248, 248, 248) !important] navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
[backcolor=rgb(248, 248, 248) !important] video.play();
}, errBack);
[backcolor=rgb(248, 248, 248) !important] }
}, false);

 


  使用教程 在線演示
Battery API   顧名思義,這是一個電池 API ,明顯是為移動設備准備的,用於監控電池的狀態。能夠通過事件監聽電池電量的變化,電池的等級、可用時間等狀態。下面是是示例代碼,可以通過後面的教程鏈接學習更詳細的使用方法。[size=1em] [color=rgb(255, 255, 255) !important]?  
[backcolor=rgb(248, 248, 248) !important]1
2
[backcolor=rgb(248, 248, 248) !important]3
4
[backcolor=rgb(248, 248, 248) !important]5
6
[backcolor=rgb(248, 248, 248) !important]7
8
[backcolor=rgb(248, 248, 248) !important]9
10
[backcolor=rgb(248, 248, 248) !important]11
12
  [backcolor=rgb(248, 248, 248) !important]// 獲取電池對象
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;

// 一組非常有用的電池屬性
[backcolor=rgb(248, 248, 248) !important]console.warn("Battery charging: ", battery.charging); // true
console.warn("Battery level: ", battery.level); // 0.58
[backcolor=rgb(248, 248, 248) !important]console.warn("Battery discharging time: ", battery.dischargingTime);

[backcolor=rgb(248, 248, 248) !important]// 監聽電池狀態
battery.addEventListener("chargingchange", function(e) {
[backcolor=rgb(248, 248, 248) !important] console.warn("Battery charge change: ",battery.charging);
}, false);

 


  使用教程
Link Prefetching   這個鏈接預取 API 非常有用,讓開發者可以控制網頁資源在後台安靜的預先加載,這樣用戶在浏覽網站或者使用 Web 應用程序的時候能夠有流暢的使用體驗。可以預加載整個頁面,也可以是單個資源,示例代碼如下:[size=1em] [color=rgb(255, 255, 255) !important]?  
[backcolor=rgb(248, 248, 248) !important]1
2
[backcolor=rgb(248, 248, 248) !important]3
4
[backcolor=rgb(248, 248, 248) !important]5
  [backcolor=rgb(248, 248, 248) !important]<!-- 預加載整個頁面 -->
<link rel="prefetch" href="[color=blue !important]http://davidwalsh.name/CSS-enhancements-user-experIEnce" />
[backcolor=rgb(248, 248, 248) !important] 
< !-- 預加載一張圖片 -->
[backcolor=rgb(248, 248, 248) !important]<link rel="prefetch" href="[color=blue !important]http://davidwalsh.name/wp-content/themes/walshbook3/images/sprite.png" />

 


  使用教程
  上面這5個 Html5 API 值得關注,在不久的將來這些 API 將被廣泛的使用,因此越早掌握它們可以幫助你為構建優秀的 Web 應用打下堅實的基礎。通過使用教程可以快速的熟悉這些 API 的基本用法和使用場景,提供的在線演示展示了直觀的應用情況。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved