首頁  >  文章  >  web前端  >  基於html5 DeviceOrientation 實作微信搖一搖功能_html5教學技巧

基於html5 DeviceOrientation 實作微信搖一搖功能_html5教學技巧

WBOY
WBOY原創
2016-05-16 15:46:301892瀏覽

在HTML5中,DeviceOrientation特性所提供的DeviceMotion事件封裝了裝置的運動感測器時間,透過改變時間可以取得裝置的運動狀態、加速度等資料(另還有deviceOrientation事件提供了裝置角度、朝向等資訊) 。

而透過DeviceMotion對裝置運動狀態的判斷,則可以幫助我們在網頁上就實現「搖一搖」的互動效果。

運動事件監聽


複製程式碼
程式碼如下:

if (windowDevice.Device > window.addEventListener('devicemotion', deviceMotionHandler, false);
} else {
alert('你的手機太差了,買個新的吧。');
}

取得加速度資訊

“搖一搖”的動作既“一定時間內設備了一定距離”,因此通過監聽上一步獲取到的x, y, z 值在一定時間範圍內的變化率,即可進行設備是否有進行晃動的判斷。而為了防止正常移動的誤判,需要為該變化率設定一個適當的臨界值。


複製程式碼程式碼如下:
function deviceMotionHandler(event)> var acceleration = eventData.accelerationIncludingGravity;
var curTime = new Date().getTime();
if ((curTime - last_update) > 100) {
var diffTime = curTime - last_up = curTime;
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
var speed = Math.abs(x y z - last_x - last_y - last_z) / diff * 10000;
var status = document.getElementById("status");
if (speed > SHAKE_THRESHOLD) {
doResult();
}
= y;
last_z = z;
}
}



效果如圖:

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn