Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to realize the shaking event of Mobile phone in html5

2025-01-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/01 Report--

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!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report