婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Html5監聽手機搖一搖事件的實現

Html5監聽手機搖一搖事件的實現

熱門標簽:高德地圖標注商戶怎么標 ok電銷機器人 如何查看地圖標注 欣鼎電銷機器人 效果 電話機器人技術 智能電銷機器人被禁用了么 黃石ai電銷機器人呼叫中心 惡搞電話機器人 地圖標注軟件打印出來

MDN地址:

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

下面為vue實現代碼

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

注意:iphone需要在https下才可觸發監聽事件

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:綏化 中山 盤錦 金昌 萍鄉 赤峰 聊城 阿壩

巨人網絡通訊聲明:本文標題《Html5監聽手機搖一搖事件的實現》,本文關鍵詞  Html5,監聽,手機,搖,一搖,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Html5監聽手機搖一搖事件的實現》相關的同類信息!
  • 本頁收集關于Html5監聽手機搖一搖事件的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲一区二区av在线| 国产一区二区视频在线播放| 日韩电影网1区2区| 成人激情电影免费在线观看| 在线综合视频播放| 亚洲伊人色欲综合网| 精品一区二区在线免费观看| 在线观看www91| 国产精品美女一区二区| 国产中文一区二区三区| 欧美精品亚洲一区二区在线播放| 国产欧美日韩一区二区三区在线观看 | 蜜臀av一区二区在线免费观看 | 欧美精品一区二区在线播放| 一二三四区精品视频| 成人av网站大全| 久久精品欧美一区二区三区不卡| 日韩电影免费一区| 欧美乱熟臀69xxxxxx| 亚洲伦理在线免费看| 99精品国产热久久91蜜凸| 久久嫩草精品久久久精品一| 青青国产91久久久久久| 欧美伊人久久久久久久久影院 | 成人久久视频在线观看| 国产夜色精品一区二区av| 精品中文av资源站在线观看| 欧美酷刑日本凌虐凌虐| 亚洲国产精品久久久久婷婷884| 色哟哟亚洲精品| 亚洲人亚洲人成电影网站色| 91原创在线视频| 专区另类欧美日韩| 色狠狠桃花综合| 亚洲va欧美va人人爽| 成人福利在线看| 精品视频一区三区九区| 国内精品免费**视频| 亚洲小说欧美激情另类| 亚洲精品久久嫩草网站秘色| 欧美年轻男男videosbes| 粉嫩绯色av一区二区在线观看| 不卡一卡二卡三乱码免费网站| 国产精品国产三级国产三级人妇 | 一本到高清视频免费精品| 亚洲国产精品二十页| 在线播放国产精品二区一二区四区| 国产一区二区福利视频| 亚洲成av人片在线| 麻豆免费看一区二区三区| 欧美大度的电影原声| 欧美久久婷婷综合色| 亚洲视频一区二区在线观看| 亚洲综合在线视频| 麻豆精品久久精品色综合| 成人少妇影院yyyy| 欧美激情一区二区三区| 麻豆久久久久久| 91网页版在线| 国产成人av一区二区三区在线 | av一区二区三区| 国产精品国产三级国产aⅴ入口 | 久久久久久久久久电影| 国产日韩影视精品| 香蕉av福利精品导航| 自拍视频在线观看一区二区| 亚洲色图欧美偷拍| 国产精品久久久爽爽爽麻豆色哟哟| 欧美成人欧美edvon| 国产精品嫩草99a| 国产麻豆精品theporn| 日韩一级免费观看| 污片在线观看一区二区| 91丨九色porny丨蝌蚪| 中文字幕日本乱码精品影院| 欧美亚洲国产bt| 国产一区二区三区蝌蚪| 一区二区国产视频| 久久婷婷国产综合精品青草| 色丁香久综合在线久综合在线观看| 日韩女优视频免费观看| 成人免费av资源| 人人爽香蕉精品| 亚洲视频每日更新| 国产视频亚洲色图| 久久久久久久久久看片| 欧美成人一区二区三区在线观看| 欧美—级在线免费片| 色老汉一区二区三区| 热久久久久久久| 一区精品在线播放| 在线不卡一区二区| 色综合咪咪久久| 图片区小说区区亚洲影院| 欧美在线一区二区三区| 天天射综合影视| 色婷婷久久久久swag精品| 欧美va在线播放| 色综合视频一区二区三区高清| 国产精品区一区二区三| 成人免费毛片a| 日本不卡不码高清免费观看| 国产亚洲精品7777| 欧美一级在线视频| 欧美日韩1234| 91九色最新地址| 色婷婷久久久久swag精品 | 亚洲黄网站在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美中文字幕一二三区视频| 99国产精品视频免费观看| 成人午夜免费视频| 成人黄动漫网站免费app| 韩国三级在线一区| 极品少妇一区二区| 国产成a人无v码亚洲福利| 日韩精品一二三区| 91精品国产色综合久久ai换脸| 日本欧美在线看| 精品对白一区国产伦| 国产一区在线视频| 久久久国产精品麻豆| 粉嫩高潮美女一区二区三区 | 欧美激情综合网| 成人久久视频在线观看| 亚洲午夜电影网| 亚洲欧美日韩国产综合在线| 国产精品成人午夜| 精品国内二区三区| 波多野结衣视频一区| 毛片不卡一区二区| 国产一区二区三区日韩| 懂色av一区二区三区免费看| 国产激情一区二区三区桃花岛亚洲| 国产精品原创巨作av| 一本色道久久综合亚洲91| 69p69国产精品| 欧美极品xxx| 九色|91porny| 在线看一区二区| 久久久777精品电影网影网 | 精品视频资源站| 久久丝袜美腿综合| 午夜精品一区二区三区电影天堂| 国产一区二区三区在线看麻豆| 91美女在线视频| 国产精品私人影院| 久久成人精品无人区| 欧美熟乱第一页| 国产精品看片你懂得| 美女mm1313爽爽久久久蜜臀| 一本色道a无线码一区v| 中文字幕五月欧美| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品一区二区在线看| 日韩欧美黄色影院| 综合激情网...| 91网站在线观看视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国内精品视频666| 日韩视频在线观看一区二区| 日韩精品久久理论片| 欧美一区二区在线播放| 日韩精品成人一区二区在线| 欧美日韩高清在线播放| 九九在线精品视频| 精品久久一区二区三区| 成人黄色777网| 亚洲一二三区在线观看| 91精品国产黑色紧身裤美女| 老司机精品视频在线| 久久久天堂av| 色婷婷一区二区三区四区| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区男人的天堂| 久久99精品久久久久久| 国产精品免费视频观看| 国产老妇另类xxxxx| 久久色成人在线| 欧美三级三级三级爽爽爽| 激情丁香综合五月| 亚洲va欧美va天堂v国产综合| 久久久蜜桃精品| 色综合久久中文字幕综合网| 久久电影国产免费久久电影| 亚洲嫩草精品久久| 国产亚洲视频系列| 精品国产乱子伦一区| 色拍拍在线精品视频8848| 国产精品二区一区二区aⅴ污介绍| 韩国女主播成人在线观看| 国产一区 二区 三区一级| 亚洲综合一区在线| 欧美一级二级三级乱码| 久久99久国产精品黄毛片色诱| 久久九九全国免费| 欧美伦理视频网站| 国产在线精品免费| 亚洲色欲色欲www在线观看| 欧美亚洲免费在线一区|