Get the App
SLTechnology News&Howtos  ›  Development  › 

How to realize the shaking event of Mobile phone in html5

Shulou Source: shulou.com Published: 2022-06-01 13:02:27 10月03日 Update

This article mainly shows you "how to realize the shaking event of mobile phone in html5". The content is simple and clear. I hope it can help you solve your doubts. Let the editor lead you to study and learn this article "how to realize shaking event of mobile phone in html5".

MDN address:

Https://developer.mozilla.org/zh-CN/docs/Web/API/DeviceMotionEvent/DeviceMotionEvent

The following is the vue implementation code:

Skip ads ({{time}})

Cash

摇一摇

Import {setTimeout} from "timers"; import config from ".. / utils/config.js"; export default {name: "Shake", data () {return {time: 5, show: true, shake: false, SHAKE_THRESHOLD: 3000, last_update: 0, last_x: 0, last_y: 0, last_z: 0, publicDir: config.publicDir} }, mounted () {this.init (); this.countDown ();}, methods: {/ / advertisement countdown countDown () {setTimeout () = > {if (this.time)

< 1) { this.show = false; } else { this.time--; this.countDown(); } }, 1000); }, // 显示广告 showPopup() { this.show = true; }, // 隐藏广告 hideAD() { this.show = false; }, // 开启图片摇动效果 shakeImg() { if (!this.show) { this.shake = true; this.$refs.musicBox.play(); window.removeEventListener("devicemotion", this.deviceMotionHandler, false); setTimeout(() =>

{this.shake = false; this.routerPush ("/ RedBag");}, 2000);}}, / / Route Jump routerPush (path, query) {this.$router.push ({path, query}) }, / / initialize shake, add shake monitor init () {this.last_update = new Date (). GetTime (); if (window.DeviceMotionEvent) {window.addEventListener ("devicemotion", this.deviceMotionHandler, false);} else {alert ("not support mobile event") }}, / / shake event callback function deviceMotionHandler (eventData) {var acceleration = eventData.accelerationIncludingGravity; var curTime = new Date (). GetTime (); if (curTime-this.last_update > 100) {var diffTime = curTime-this.last_update; this.last_update = curTime; var x = 0, y = 0, z = 0 X = acceleration.x; y = acceleration.y; z = acceleration.z; var speed = (Math.abs (x + y + z-this.last_x-this.last_y-this.last_z) / diffTime) * 10000 If (Number (speed) > Number (this.SHAKE_THRESHOLD)) {/ / is judged to be this.shakeImg ();} this.last_x = x; this.last_y = y; this.last_z = z;}; # Shake {. Ad-box {width: 100vW; height: 100vh Img {width: 100%; height: 100%;}}. Skip-ad {position: fixed; top: 20px; right: 20px; color: white; background-color: rgba (0,0,0,0.2); padding: 10px 20px; border-radius: 10px;} .shake-page {width: 100vw; height: 100vh Background-image: url (".. / assets/img/shake/shake_bg.jpg"); background-size: 100% 100%; padding-top: 0.1 px; .shake-img {display: block; width: 469px; height: auto; margin: auto; margin-top: 350px; pointer-events: auto;}} .cash-withdrawal-btn {color: white Position: fixed; border: 1px solid # eee; padding: 5px 40px; border-radius: 25px; top: 30px; right: 20px;}. Display-horizontal-move {display: inherit; transform-origin: center center; animation-play-state: running; animation-name: shake-horizontal; animation-duration: 100ms; animation-timing-function: ease-in-out; animation-iteration-count: infinite } @ keyframes shake-horizontal {2% {transform: translate (- 7px, 0) rotate (0);} 4% {transform: translate (- 5px, 0) rotate (0);} 6% {transform: translate (4px, 0) rotate (0); 8% {transform: translate (- 4px, 0) rotate (0) } 10% {transform: translate (- 6px, 0) rotate (0);} 12% {transform: translate (2px, 0) rotate (0);} 14% {transform: translate (- 5px, 0) rotate (0);} 16% {transform: translate (- 3px, 0) rotate (0);} 18% {transform: translate (2px, 0) rotate (0) } 20% {transform: translate (3px, 0) rotate (0);} 22% {transform: translate (- 2px, 0) rotate (0);} 24% {transform: translate (- 3px, 0) rotate (0);} 26% {transform: translate (- 9px, 0) rotate (0);} 28% {transform: translate (2px, 0) rotate (0) } 30% {transform: translate (7px, 0) rotate (0);} 32% {transform: translate (2px, 0) rotate (0);} 34% {transform: translate (0px, 0) rotate (0);} 36% {transform: translate (- 1px, 0) rotate (0);} 38% {transform: translate (6px, 0) rotate (0) } 40% {transform: translate (- 7px, 0) rotate (0);} 42% {transform: translate (0px, 0) rotate (0);} 44% {transform: translate (- 1px, 0) rotate (0); 46% {transform: translate (- 2px, 0) rotate (0);} 48% {transform: translate (10px, 0) rotate (0) } 50% {transform: translate (- 8px, 0) rotate (0);} 52% {transform: translate (- 9px, 0) rotate (0);} 54% {transform: translate (9px, 0) rotate (0);} 56% {transform: translate (- 2px, 0) rotate (0);} 58% {transform: translate (- 5px, 0) rotate (0) } 60% {transform: translate (2px, 0) rotate (0);} 62% {transform: translate (- 4px, 0) rotate (0);} 64% {transform: translate (1px, 0) rotate (0);} 66% {transform: translate (- 3px, 0) rotate (0);} 68% {transform: translate (10px, 0) rotate (0) } 70% {transform: translate (4px, 0) rotate (0);} 72% {transform: translate (- 6px, 0) rotate (0);} 74% {transform: translate (- 6px, 0) rotate (0); 76% {transform: translate (2px, 0) rotate (0);} 78% {transform: translate (- 2px, 0) rotate (0) } 80% {transform: translate (- 6px, 0) rotate (0);} 82% {transform: translate (- 1px, 0) rotate (0);} 84% {transform: translate (- 6px, 0) rotate (0);} 86% {transform: translate (- 5px, 0) rotate (0);} 88% {transform: translate (- 1px, 0) rotate (0) } 90% {transform: translate (- 1px, 0) rotate (0);} 92% {transform: translate (- 1px, 0) rotate (0);} 94% {transform: translate (- 3px, 0) rotate (0);} 96% {transform: translate (- 6px, 0) rotate (0);} 98% {transform: translate (- 6px, 0) rotate (0) 0%, 100% {transform: translate (0,0) rotate (0);}

Note: iphone needs to be under https to trigger listening events.

The above is all the contents of the article "how to realize the shaking event of Mobile phone in html5". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!

Tags: Events mobile phones content articles advertisements learning help monitoring countdown code functions actions addresses understandable more organization knowledge editing industry information Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Redmi Shulou Tech Info OPPO Reno NVidia Docker