H5做出手機搖一搖功能的實現步驟
html5
實現
步驟
今天教大家用HTML5來在網頁裡實現一個很酷的功能,手機搖一搖。如果你之前做過手機端的開發,可能對於這樣的功能非常了解。但是下面,我們將在Web上首次實現這個功能。
方向事件deviceorientation
此事件實在裝置方向變更時觸發, 使用方法如下;
window.addEventListener('deviceorientation', orientationHandler , true);
回呼函數orientationHandler會接收到一個DeviceOrientationEvent類型參數, 包含以下資訊.
##absolute 如果方向資料跟地球座標系和設備座標係有差異, 則為truealpha 設備在alpha方向上旋轉的角度, 範圍為0-360beta 設備在Beta方向上旋轉的角度, 範圍為-180-180gamma 設備在Gamma方向上旋轉的角度, 範圍為-90-90移動事件devicemotion此事件實在裝置位置變更時觸發window.addEventListener('devicemotion', motionHandler, false);此回呼函數會接受DeviceMotionEvent類型參數, 包含下列資訊.屬性名稱說明acceleration 裝置在X,Y,Z三個軸的方向上移動的距離, 以抵消重力加速度accelerationIncludingGravity 裝置在X,Y,Z三個軸方向移動的距離, 包含重力加速度rotationRate 裝置在Alpha, Beta, Gamma三個方向旋轉的角度interval 從裝置取得資料的頻率, 單位是毫秒程式碼部分
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>摇一摇</title> </head> <body> <p> 摇一摇 </p> <script> const SHAKE_SPEED = 300; let lastTime = 0;//上次变化的时间 let x = y = z = lastX = lastY = lastZ = 0;//位置变量初始化 function motionHandler(event) { let acceleration = event.accelerationIncludingGravity; let curTime = Date.now();//取得当前时间 if ((curTime - lastTime) > 120) { let diffTime = curTime - lastTime; lastTime = curTime; x = acceleration.x; y = acceleration.y; z = acceleration.z; //计算摇动速度 let speed = Math.abs(x + y + z - lastX - lastY - lastZ) / diffTime * 1000; if (speed > SHAKE_SPEED) { alert("你摇动了手机"); } lastX = x; lastY = y; lastZ = z; } } if(window.DeviceMotionEvent) { window.addEventListener('devicemotion', motionHandler, false); } else { alert("你的设备不支持位置感应"); } </script> </body> </html>
登入後複製
其它相關文章!
相關閱讀:以上是H5做出手機搖一搖功能的實現步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章
刺客信條陰影:貝殼謎語解決方案
1 個月前
By DDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前
By DDD
在哪裡可以找到原子中的起重機控制鑰匙卡
1 個月前
By DDD
如何修復KB5055523無法在Windows 11中安裝?
2 週前
By DDD
Inzoi:如何申請學校和大學
3 週前
By DDD

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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