Optimieren Sie zuerst DeviceMotionEvent;
Unnötigen Code entfernen und DeviceMotionEven neu verpacken
if(window.DeviceMotionEvent) {
var speed = 25;//Definieren Sie einen Wert
var x = y = z = lastX = lastY = lastZ = 0;/ /Alles zurücksetzen Werte
window.addEventListener('devicemotion', function(){
var Beschleunigung =event.accelerationIncreasingGravity;//Weisen Sie den Erfassungswert der Beschleunigung zu
x = Beschleunigung.x;
y = Beschleunigung. y;
z = Beschleunigung.z;
if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed ) {
// TODO: Hier Sie können die Datenlogikoperationen implementieren, die nach dem Schütteln ausgeführt werden sollen
donghua();
lastY = y;
}, false );
}
Aufgrund vieler Anforderungen in tatsächlichen Projekten, die nicht gut umgesetzt werden können,
Zum Beispiel: Die Animation kann nicht fortgesetzt werden, bis sie abgeschlossen ist ;
Es wurde also eine weitere Optimierung durchgeführt
if(window.DeviceMotionEvent) {
var speed = 25;//Definieren Sie einen Wert
var x = y = z = lastX = lastY = lastZ = 0;//alle Werte zurücksetzen Erkennt die der Beschleunigung zugewiesenen Werte
x = Beschleunigung.x;
y = Beschleunigung.y
z = Beschleunigung.z; speed ||. Math .abs(y-lastY) > speed ) {
// TODO: Hier können Sie die Datenlogikoperationen implementieren, die nach dem Schütteln ausgeführt werden sollen
if(f==1){
donghua( );
f=0;
}
lastY = y;
lastZ = z; >}
Jetzt ist es perfekt
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