基於html5 DeviceOrientation 實作微信搖一搖功能_html5教學技巧
html5
在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;
}
}
效果如圖:
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

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
如何修復KB5055612無法在Windows 10中安裝?
4 週前
By DDD
<🎜>:種植花園 - 完整的突變指南
3 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)