HTML5推出了許多新的應(yīng)用程序開發(fā)功能,其中之一就是手機(jī)搖一搖功能。這個功能很酷,可以給用戶帶來全新的互動體驗。在HTML5中實現(xiàn)該功能的代碼非常簡單。
在本示例中,我們將通過使用JavaScript監(jiān)聽設(shè)備的加速度傳感器來檢測設(shè)備是否被搖動。一旦檢測到,我們將觸發(fā)一個事件并在屏幕上顯示一條消息。
// 獲取設(shè)備加速度傳感器 window.addEventListener('devicemotion', shakeHandler, false); // 定義監(jiān)聽函數(shù),檢測設(shè)備是否被搖動 function shakeHandler(event){ var acceleration = event.accelerationIncludingGravity; var curTime = new Date().getTime(); if((curTime - lastUpdateTime) >100){ var diffTime = curTime - lastUpdateTime; lastUpdateTime = curTime; var x = acceleration.x; var y = acceleration.y; var z = acceleration.z; var speed = Math.abs(x + y + z - lastX - lastY - lastZ) / diffTime * 10000; if (speed >threshold) { alert("設(shè)備被搖動了!"); } lastX = x; lastY = y; lastZ = z; } }
以上代碼中,我們通過使用addEventListener函數(shù)來監(jiān)聽devicemotion事件。當(dāng)該事件觸發(fā)時,會執(zhí)行shakeHandler函數(shù),該函數(shù)通過獲取當(dāng)前時間和設(shè)備加速度傳感器的值來判斷設(shè)備是否被搖動。如果速度超過設(shè)定的閾值,我們就會在屏幕上彈出一條消息,通知用戶設(shè)備被搖動了。
以上就是HTML5手機(jī)搖一搖功能的實現(xiàn)代碼,大家可以根據(jù)自己的需要對代碼進(jìn)行修改和擴(kuò)展,以滿足更多的應(yīng)用場景。