返回顶部
首页 > 资讯 > 精选 >怎么在Html5中实现手机摇一摇事件
  • 921
分享到

怎么在Html5中实现手机摇一摇事件

2023-06-09 12:06:52 921人浏览 八月长安
摘要

怎么在HTML5中实现手机摇一摇事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。<template>  <div id=&

怎么在HTML5中实现手机摇一摇事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<template>  <div id="Shake">    <van-popup v-model="show">      <div class="ad-box">        <span class="skip-ad" @click="hideaD">跳过广告({{time}})</span>        <img src="../../../../assets/img/shake/shake_ad.jpg" alt>      </div>    </van-popup>    <div class="shake-page">      <span class="cash-withdrawal-btn">提现</span>      <img        class="shake-img shake-horizontal"        :class="shake?'shake-horizontal-move':''"        src="../../../../assets/img/shake/shake.png"        alt="摇一摇"        @click="shakeImg"      >    </div>    <audio      style="display: none;"      :src="publicDir + '/static/audio/5018.mp3'"      ref="musicBox"      preload="preload"      controls    ></audio>  </div></template><script>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: {    // 广告倒计时    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);      }    },    // 路由跳转    routerPush(path, query) {      this.$router.push({        path,        query      });    },    // 初始化摇一摇,添加摇动监听    init() {      this.last_update = new Date().getTime();      if (window.DeviceMotionEvent) {        window.addEventListener(          "devicemotion",          this.deviceMotionHandler,          false        );      } else {        alert("not support mobile event");      }    },    // 摇一摇事件回调函数    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)) {          // 判断为摇一摇动作          this.shakeImg();        }        this.last_x = x;        this.last_y = y;        this.last_z = z;      }    }  }};</script><style lang="less">#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.1px;    .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;  }  .shake-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);    }  }}</style>

关于怎么在html5中实现手机摇一摇事件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在Html5中实现手机摇一摇事件

本文链接: https://lsjlt.com/news/255931.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Html5中实现手机摇一摇事件
    怎么在Html5中实现手机摇一摇事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。<template>  <div id=&...
    99+
    2023-06-09
  • Html5+JS如何实现手机摇一摇功能
    本文将为大家详细介绍“Html5+JS如何实现手机摇一摇功能”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Html5+JS如何实现手机摇一摇功能...
    99+
    2024-04-02
  • Html5+JS实现手机摇一摇功能的示例
    小编给大家分享一下Html5+JS实现手机摇一摇功能的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js有什么特点1、js属于一种解释性脚本语言;2、在绝大多...
    99+
    2023-06-09
  • html5怎么实现摇一摇的功能
    这篇文章主要讲解了“html5怎么实现摇一摇的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么实现摇一摇的功能”吧! ...
    99+
    2024-04-02
  • 怎么在Android中实现一个摇一摇功能
    本篇文章给大家分享的是有关怎么在Android中实现一个摇一摇功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。步骤1:声明一个SensorManager对象步骤2:重写Act...
    99+
    2023-06-14
  • 怎么用html5的DeviceOrientation实现微信摇一摇功能
    这篇“怎么用html5的DeviceOrientation实现微信摇一摇功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有...
    99+
    2024-04-02
  • 如何使用HTML 5实现手机摇一摇功能
    如何使用HTML 5实现手机摇一摇功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。deviceOrientation:封装了...
    99+
    2024-04-02
  • 基于HTML5实现类似微信手机摇一摇功能的示例分析
    小编给大家分享一下基于HTML5实现类似微信手机摇一摇功能的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、 ...
    99+
    2024-04-02
  • 在html5中如何利用重力感应实现摇一摇换颜色可用来做抽奖
    这篇文章给大家介绍在html5中如何利用重力感应实现摇一摇换颜色可用来做抽奖,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。从网上找到了一个案例,是用来摇一摇换颜色的,非常好用,不过测试...
    99+
    2024-04-02
  • HTML5中怎么实现video 事件
    HTML5中怎么实现video 事件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1、获取视频时间长度 当视...
    99+
    2024-04-02
  • html5的touch事件怎么实现
    今天小编给大家分享一下html5的touch事件怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • HTML5怎么在手机端实现视频全屏
    本篇内容主要讲解“HTML5怎么在手机端实现视频全屏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5怎么在手机端实现视频全屏”吧!最近做项目,遇到一个问题,在手机上要实现视频的全屏播放功...
    99+
    2023-06-09
  • 怎么在Html5中实现百度地图的点击事件
    怎么在Html5中实现百度地图的点击事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。根据百度地图官方解释,在移动端 H5 页面中可监听下面这 4 个事件:touchsta...
    99+
    2023-06-09
  • 怎么在html5中实现一个BUI折叠菜单插件
    本篇文章为大家展示了怎么在html5中实现一个BUI折叠菜单插件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一个点击显示隐藏的效果, 并且点击的时候, 会先把展开进行隐藏, 再展开自己的. 从界面...
    99+
    2023-06-09
  • 怎么在Html5中实现一个react拖拽排序组件
    今天就跟大家聊聊有关怎么在Html5中实现一个react拖拽排序组件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一步是先了解H5拖放的相关属性,MDN上有详细的说明,链接为htt...
    99+
    2023-06-09
  • 怎么在html5中模拟长按事件
    本篇文章为大家展示了怎么在html5中模拟长按事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。思路放弃click事件,通过判断按的时长来决定是单击还是长按使用touchstart和touchend...
    99+
    2023-06-09
  • Html5中怎么实现一个iPhone开机界面
    Html5中怎么实现一个iPhone开机界面,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。index.html代码<!DOCTYPE h...
    99+
    2024-04-02
  • 怎么在html5中使用canvas实现手势解锁
    怎么在html5中使用canvas实现手势解锁?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。demo.html<!DOCTYPE html><h...
    99+
    2023-06-09
  • 怎么在HTML5中调用手机发短信
    今天就跟大家聊聊有关怎么在HTML5中调用手机发短信,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<!DOCTYPE html><html><...
    99+
    2023-06-09
  • 怎么在html5中实现一个时钟功能
    这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE HTML><html><hea...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作