首頁  >  文章  >  web前端  >  H5做出手機搖一搖功能的實現步驟

H5做出手機搖一搖功能的實現步驟

php中世界最好的语言
php中世界最好的语言原創
2017-12-04 11:15:103841瀏覽

今天教大家用HTML5來在網頁裡實現一個很酷的功能,手機搖一搖。如果你之前做過手機端的開發,可能對於這樣的功能非常了解。但是下面,我們將在Web上首次實現這個功能。

方向事件deviceorientation

此事件實在裝置方向變更時觸發, 使用方法如下;

window.addEventListener('deviceorientation', orientationHandler , true);

回呼函數orientationHandler會接收到一個DeviceOrientationEvent類型參數, 包含以下資訊.

##屬性

##absolute 如果方向資料跟地球座標系和設備座標係有差異, 則為true

alpha 設備在alpha方向上旋轉的角度, 範圍為0-360

beta 設備在Beta方向上旋轉的角度, 範圍為-180-180

gamma 設備在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(&#39;devicemotion&#39;, motionHandler, false);
    } else {
      alert("你的设备不支持位置感应");
    }
  </script>
</body>
</html>


相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網

其它相關文章!

相關閱讀:

html5中的DOM程式設計的實作步驟

HTML裡的事件怎麼使用

用canvas做出時鐘實作步驟

以上是H5做出手機搖一搖功能的實現步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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