Html5+JS實現手機搖一搖
HTML5一個重要特性就是DeviceOrientation,它將底層的方向傳感器和運動傳感器進行了高級封裝,提供了DOM事件的支持。這個特性包括兩種事件:
1、 deviceOrientation:封裝了方向傳感器數據的事件,可以獲取手機靜止狀態下的方向數據,例如手機所處角度、方位、朝向等。
2、 deviceMotion:封裝了運動傳感器數據的事件,可以獲取手機運動狀態下的運動加速度等數據。 使用它我們能夠很容易的實現重力感應、指南針等有趣的功能,在手機上將非常有用。例如Opera H5體驗版裏的重力感應球示例就是通過監聽DeviceOrientation API的deviceOrientation事件來實現的。 其實它還能幫助我們在網頁上實現一個手機應用裏非常常見而時尚的功能:手機搖一搖。
DeviceMotionEvent(設備運動事件)返回設備有關於加速度和旋轉的相關信息。加速度的數據將包含三個軸:x,y和z(示意如下圖所示,x軸橫向貫穿手機屏幕或者筆記本鍵盤,y軸縱向貫穿手機屏幕或筆記本鍵盤,z軸垂直於手機屏幕或筆記本鍵盤)。因爲有些設備可能沒有硬件來排除重力的影響,該事件會返回兩個屬性,accelerationIncludingGravity(含重力的加速度)和acceleration(加速度),後者排除了重力的影響。
1. [代碼]監聽運動傳感事件
2. [代碼]獲取含重力的加速度
3. [代碼]核心方法實現代碼
HTML5一個重要特性就是DeviceOrientation,它將底層的方向傳感器和運動傳感器進行了高級封裝,提供了DOM事件的支持。這個特性包括兩種事件:
1、 deviceOrientation:封裝了方向傳感器數據的事件,可以獲取手機靜止狀態下的方向數據,例如手機所處角度、方位、朝向等。
2、 deviceMotion:封裝了運動傳感器數據的事件,可以獲取手機運動狀態下的運動加速度等數據。
使用它我們能夠很容易的`實現重力感應、指南針等有趣的功能,在手機上將非常有用。例如Opera H5體驗版裏的重力感應球示例就是通過監聽DeviceOrientation
API的deviceOrientation事件來實現的。
其實它還能幫助我們在網頁上實現一個手機應用裏非常常見而時尚的功能:手機搖一搖。
DeviceMotionEvent(設備運動事件)返回設備有關於加速度和旋轉的相關信息。加速度的數據將包含三個軸:x,y和z(示意如下圖所示,x軸橫向貫穿手機屏幕或者筆記本鍵盤,y軸縱向貫穿手機屏幕或筆記本鍵盤,z軸垂直於手機屏幕或筆記本鍵盤)。因爲有些設備可能沒有硬件來排除重力的影響,該事件會返回兩個屬性,accelerationIncludingGravity(含重力的加速度)和acceleration(加速度),後者排除了重力的影響。
1. [代碼]監聽運動傳感事件
代碼如下:
if (ceMotionEvent) {
ventListener(‘devicemotion’,deviceMotionHandler, false);
}
2. [代碼]獲取含重力的加速度
代碼如下:
function deviceMotionHandler(eventData) {
var acceleration =lerationIncludingGravity;
}
3. [代碼]核心方法實現代碼
代碼如下:
var SHAKE_THRESHOLD = xxx;
var last_update = 0;
var x, y, z, last_x, last_y, last_z;
function deviceMotionHandler(eventData) {
var acceleration =lerationIncludingGravity;
var curTime = newDate()ime();
if ((curTime – lastUpdate)> 100) {
var diffTime = curTime -last_update;
last_update = curTime;
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
var speed = (x +y + z – last_x – last_y – last_z) / diffTime * 10000;
if (speed > SHAKE_THRESHOLD) {
alert(“shaked!”);
}
last_x = x;
last_y = y;
last_z = z;
}
}
相關文章
-
html.jsp和srevlet的關係
1. jsp的作用:* Servlet:> 缺點:不適合設置html響應體,需要大量的riter()t("")> 優點:動態資源,可以編程。* html:> 缺點:html是靜態頁面,不能包含動態信息> 優點:不用爲輸出html標籤而發愁* jsp(java server pages):> 優點:在原 -
Box Jellyfish Eyes Aim At The Trees美文欣賞
Box Jellyfish Eyes Aim At The TreesBox jellyfish have it over the rest of the jellyfish world—they have true eyes, featuring coeas, lenses and retinas. They have a more sophisticated nervous system t -
Java中hashmap和hashtable的區別
引導語:HashMap 和HashSet 是Java Collection Framework 的兩個重要成員,其中 HashMap 是Map 接口的常用實現類,HashSet 是Set 接口的常用實現類。以下是本站小編分享給大家的Java中hashmap和hashtable的區別,歡迎閱讀!1 -
Unit5 My clothes A Let’s talk評課稿
我們能感受到吳老師教態大方,富有表現力;能和學生打成一片,富有感染力。我想,這也是以學爲本的課堂學習精神文化特徵之一。吳老師執教的是PEP4 Unit5 My clothes A Let’s talk,課文中是體育課結束之後,老師與Amy之間展開的 -
Javascript實例教程如何使用HoTMetal
篇一:志願軍雄兵出擊觀後感600字一身血,兩腳泥。誰是最可愛的人?就是他們:抗美援朝戰場上的志願軍們!電影《志願軍:雄兵出擊》爲我們講述了一個個有血有肉有淚志願軍戰士英勇無畏捨生忘死的英雄事蹟,電影的每一幕每一幀都如 -
關於MyEclipse代碼提示設置包括html和jsp的代碼
(一)普通代碼提示1. 打開MyEclipse ,然後“window”→“Preferences”2. 選擇“java”,展開,“Editor”,選擇“Content Assist”。3. 選擇“Content Assist”,然後看到右邊,右邊的“Auto-Activation”下面的“Auto Acti -
Jolie drops battle over perfume named Shilohy英語作文
自願退學申請書怎麼寫2022 篇1敬愛的院領導:你們好!我感謝學院給我這樣一個低分考生讀大學的機會,承蒙這1年來學院的培養和教導。在輕鬆愉快的學習氛圍下,我萌發了退學的想法,考慮再三,現正要將此想法付誅行動。後經過輔導 -
HTML5&details標籤屬性
總結在一個時期、一個年度、一個階段對學習和工作生活等情況加以回顧和分析的一種書面材料,通過它可以正確認識以往學習和工作中的優缺點,不如我們來制定一份總結吧。那麼總結有什麼格式呢?以下是小編爲大家整理的國小五 -
Lantern Festival,The 15th day of the 1st lunar month英語作
The 15th day of the 1st lunar month is the Chinese Lante Festival because the first lunar month is called yuan-month and in the ancient times people called night Xiao. The 15th day is the first night -
Html/Css新手入門攻略
一、理解web標準含義--爲什麼採用web標準*****將內容與樣式分離1、web標準是一系列標準,就是一系列技術標準在使用時,是組合應用【1】、結構化內容 xhtml【2】、表現化內容 css【3】、行爲化內容 JavaScript2、網頁