Heim  >  Artikel  >  Web-Frontend  >  H5 Schritte zur Implementierung der Handy-Shake-Funktion

H5 Schritte zur Implementierung der Handy-Shake-Funktion

php中世界最好的语言
php中世界最好的语言Original
2017-12-04 11:15:103841Durchsuche

Heute zeige ich Ihnen, wie Sie mit HTML5 eine sehr coole Funktion auf der Webseite implementieren. Schütteln Sie einfach Ihr Telefon. Wenn Sie bereits Erfahrung mit der mobilen Entwicklung haben, sind Sie möglicherweise mit solchen Funktionen bestens vertraut. Im Folgenden werden wir diese Funktion jedoch zum ersten Mal im Web implementieren.

AusrichtungEreignisGeräteorientierung

Dieses Ereignis wird ausgelöst, wenn sich die Geräteausrichtung ändert. Die Verwendungsmethode ist wie folgt:

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

Callback-FunktionorientationHandler erhält einen DeviceOrientationEvent-Typparameter, einschließlich der folgenden Informationen.

AttributNamensbeschreibung

absolut Wenn sich die Richtungsdaten vom Erdkoordinatensystem und dem Gerätekoordinatensystem unterscheiden, sind sie wahr

Alpha Der Drehwinkel des Geräts in Alpha-Richtung, im Bereich von 0-360

Beta-Gerät in Der Drehwinkel in der Beta-Richtung, im Bereich von -180-180

Gamma Der Drehwinkel des Geräts in der Gamma-Richtung, im Bereich von -90-90

Bewegungsereignis devicemotion

Dieses Ereignis wird ausgelöst, wenn sich die Geräteposition ändert

window.addEventListener('devicemotion', motionHandler, false);

Dieser Rückruf Die Funktion akzeptiert Parameter vom Typ DeviceMotionEvent, einschließlich der folgenden Informationen.

Beschreibung des Attributnamens

Beschleunigung Die Distanz, die das Gerät in Richtung der X-, Y- und Z-Achse zurücklegt, um die Erdbeschleunigung auszugleichen

accelerationInclusiveGravity Die Distanz, die das Gerät in den drei Richtungen X, Y und Z zurücklegt. Die Distanz, die in Achsenrichtung zurückgelegt wird, einschließlich der Erdbeschleunigung.

rotationRate Der Drehwinkel des Geräts in den drei Richtungen Alpha, Beta und Gamma

Intervall Die Häufigkeit des Datenabrufs vom Gerät in Millisekunden

Codeteil

<!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>


Ich glaube, dass Sie die Methode beherrschen, nachdem Sie diese Fälle gelesen haben. Weitere spannende Inhalte finden Sie auf der chinesischen PHP-WebsiteAndere verwandte Artikel!

Verwandte Lektüre:

Implementierungsschritte der DOM-Programmierung in HTML5

So verwenden Sie Ereignisse in HTML

Verwenden Sie Canvas, um Schritte zur Uhrimplementierung durchzuführen

Das obige ist der detaillierte Inhalt vonH5 Schritte zur Implementierung der Handy-Shake-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn