<template><div class="gyro"><!-- 陀螺仪 --><ul class="gyroWrap"><!-- <li>设备是否提供绝对定位(absolute)数据: {{absolute}}</li> --><!-- <li>设备沿z轴(alpha)上的旋转角度: {{alpha}}</li> --><li>设备在x轴(beta)上的旋转角度: {{beta}}</li><!-- <li>设备在y轴(gamma)上的旋转角度: {{gamma}}</li> --><li>上个值/当前值:<span v-for="(item,index) in remArr" :key="index" style="color:magenta">{{item}}&nbsp;|&nbsp;</span></li><li>当前手机向<span style="background: lime;">-- {{phoneArrow}} --</span>侧倾斜</li></ul><!-- 按钮 --><!-- @click="scale(item, index)" --><ul class="btnWrap" ref="btnClick"><li  v-for="(item, index) in btnList"@click="index == 0 ? scale1(item, index) : scale2(item, index) ":class="effectLeft == true && curIndex == index ? 'active' :(effectRight == true && curIndex == index ? 'active' : '') ">{{item.name}}</li></ul><!-- 蒙版 --><!-- <div class="mask" v-if="maskState"><button @click="closePage()">BACK</button></div> --><ul class="gyroWrap"><li v-for="(item,index) in classList"class="li-default":class="classList | addBtnClass(index)">{{classList | addBtnClass(index) + ' -- filters add -- '}}</li></ul></div>
</template>
<script>
export default {data(){return {btnList: [{name: '左',},{name: '右'}],// absolute: '',// alpha: '0',beta: '0',// gamma: '0',remArr: [], // 测试 查看符合的最后两项值phoneArrow: '0', // 测试 当前手机向那边倾斜// 蒙版maskState: true,// 按钮 添加动效curIndex: 0,effectLeft: false,clickStateLeft: true,effectRight: false,clickStateRight: true,//测试 添加类名classList: ['left','right','up','down']}},filters: {// add classaddBtnClass(list, index){// console.log("addBtnClass index", list, index);let classRe = 'li-';if(index == 0){return classRe + 'left'}else if(index == 1){return classRe + 'right'}else if(index == 2){return classRe + 'up'}else if(index == 3){return classRe + 'down'}},},methods: {scale(item, index){let that = this;that.curIndex = index;if(index==0){// console.log("Left");if(that.clickStateLeft){that.clickStateLeft = false;that.effectLeft = !that.effectLeft;setTimeout(()=>{that.effectLeft = !that.effectLeft;that.clickStateLeft = true;console.log("Left 动画结束了");},80);}else{console.log("Left 还没执行完成,不能继续");return;}}else if(index==1){// console.log("Right");if(that.clickStateRight){that.clickStateRight = false;   // 防止连续点击按钮that.effectRight = !that.effectRight;setTimeout(()=>{that.effectRight = !that.effectRight;that.clickStateRight = true;console.log("Right 动画结束了");},80);}else{console.log("Right 还没执行完成,不能继续");return;}}console.log("scale");},scale1(item, index){let that = this;that.curIndex = index;if(!that.clickStateLeft) {console.log("Left 还没执行完成,不能继续");return;}that.clickStateLeft = false;that.effectLeft = !that.effectLeft;setTimeout(()=>{that.effectLeft = !that.effectLeft;that.clickStateLeft = true;console.log("Left 动画结束了");},35);},scale2(item, index){let that = this;that.curIndex = index;if(!that.clickStateRight) {console.log("Right 还没执行完成,不能继续");return;}that.effectRight = !that.effectRight;that.clickStateRight = false;   // 防止连续点击按钮setTimeout(()=>{that.effectRight = !that.effectRight;that.clickStateRight = true;   // 防止连续点击按钮console.log("Right 动画结束了");},35);},// 关闭蒙版closePage(){this.maskState = false;// WeixinJSBridge.call('closeWindow');// document.addEventListener('WeixinJSBridgeReady', function(){ WeixinJSBridge.call('closeWindow'); }, false)},// 获取手机陀螺仪参数getGyro(){let that = this;if (window.DeviceOrientationEvent) {console.log("你的手机支持陀螺仪");let sensitiveDeg = 30;   // 灵敏度(晃动手机的角度值)let allBeta = [0];  // 用于记录所有符合发送消息的参数值let lastBeta = [];  // 用于记录符合参数中的最后两项(上一个值和当前的值)let beta;   // 当前陀螺仪x轴的参数let countL = 0;let countR = 0;window.addEventListener('deviceorientation', function(e){beta = parseInt(e.beta);    // x轴的参数,保留整数that.beta = beta; // 测试 页面中查看 当前参数值// 符合记录条件:1、处于x轴0度位置;2、每晃动角度变化达到设置的灵敏度;3、在控制的角度范围之内(这里设置:0至-75和0-75范围内)if(beta == 0 || (beta % sensitiveDeg == 0 && ((beta < 0 && beta >= -75) || (beta > 0 && beta <= 75) ))){allBeta.push(beta); // 每次符合就记录到数组lastBeta = allBeta.slice(allBeta.length-2, allBeta.length );    // 每记录到新的参数,就更新记录的最后两项值that.remArr = lastBeta;console.log("最后两项:", lastBeta);let prevBeta = lastBeta[0]; // 上一个值let curBeta = lastBeta[1];  // 当前值if(curBeta > prevBeta){// 当前值大于上一值,手机正在向右倾斜countL++that.phoneArrow = "右-" + countL;console.log("当前项 大于 > 上一项", curBeta + ">" + prevBeta, countL);}else if(curBeta < prevBeta){// 当前值小于上一值,手机正在向左倾斜countR++that.phoneArrow = "左-" + countR;console.log("当前项 小于 < 上一项", curBeta + "<" + prevBeta, countR);}else if(curBeta == prevBeta){// 当前值与上一值一样,手机晃动幅度不大,未达到敏感值,无需发送指令}}});} else {console.log("你的手机--不--支持陀螺仪");}},},mounted(){console.log("hello  Gyro");this.getGyro();// let oUl = this.$refs.btnClick// console.log(oUl);// oUl.addEventListener('click', (event)=>{//     event = event || window.event;//     var target = event.target || event.srcElement;//     if(target.nodeName == 'LI'){//         console.log("class",event, target);//     }// }, false)}
}
</script><style type="text/css" scoped>.gyro{padding-top: .15rem;
}/* 按钮 */
.btnWrap{display: flex;justify-content: space-around;margin-bottom: .5rem;
}
.btnWrap li{width: 2.5rem;height: 2.5rem;line-height: 2.5rem;font-size: .5rem;color: #ccc;text-align: center;border: .01rem solid lime;border-radius: 50%;/* background: url(../assets/imgs/01.jpg); */
}
.btnWrap .active{/* transform: scale(0.9); */animation: effect 35ms linear;}@keyframes effect {0% {transform: scale(1);}50% {transform: scale(.9);}100% {transform: scale(1);}
}/* 蒙版 */
.mask{display: flex;justify-content: center;align-items: center;position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 90;background: rgba(0,0,0,.5);
}button{width: 60%;line-height: 1rem;text-align: center;font-size: .38rem;color: #fff;border: #fff .03rem solid ;border-radius: 1rem;background: none;outline: none;
}/* 陀螺仪 */.gyroWrap{width: 6.9rem;margin: 0 auto .5rem;text-align: left;border: .01rem solid #ccc;border-bottom: none;
}.gyroWrap li{box-sizing: border-box;line-height: .7rem;padding: 0 .3rem;border-bottom: .01rem solid #ccc;
}</style>

【学习随记】Gyro,Btn,filters_addClass相关推荐

  1. 微擎学习随记_常用功能实现

    微擎学习随记_常用功能实现 消息通知: 代码位置: addons/项目名/core/model/notice.php(设置微信信息通知和微信模板消息通知) 需求: 店铺得到收益之后以消息的形式通知店铺 ...

  2. 基于Tomcat的MQ学习月记

    基于Tomcat的MQ学习月记 JAVA实现简单MQ队列服务 主要角色 流程顺序 项目构建流程 具体使用流程 代码演示 客户端执行生产消费信息包(AppClient) 消息中心服务(CenterSer ...

  3. 我的 C 语言学习生涯记——纪念 Dennis M. Ritchie

    我的 C 语言学习生涯记--纪念 Dennis M. Ritchie (本文应 gaobo 要求而写,以纪念我们永远的 Dennis M. Ritchie 老师) 让我把时间的车轮倒转,回到 1998 ...

  4. HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试

    HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试 开始学习嵌入式后,最难受的一个点在于电脑端口不够.我的电脑有两个USB口一个TypeC口,鼠标和键盘都要插USB口,stm32和51也都 ...

  5. DO-178B三种文本对照学习注记

    DO-178B三种文本对照学习注记 1.        引言 本文汇总了对英文版DO-178B.法文版ED-12B和中文版HB/Z295-96进行对照学习时所做的注记.这三种文本是: 英文版:RTCA ...

  6. golang web学习随便记3-响应有关

    http.ResponseWriter接口 前一篇中的例子已经"庞大",我们这篇将编写新的例子来学习服务器的响应和cookie.在看例子代码之前,我们先来看handler  fun ...

  7. ipad上有哪些好用的学习和记笔记的软件?

    Goodnotes goodnote是ipad上的一款非常优秀的笔记软件,goodnote像一个自由的笔记本一样,可以让你像在纸张上一样的书写效果.并且支持可以插入非常丰富的媒体文件,但是goodno ...

  8. python爬取js加载的数据_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程...

    昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下.大概看了下,是js加载的,而且数据在js函数中,很有 ...

  9. 学习笔记-记ActiveMQ学习摘录与心得(一)

    这两天在看开源的MQ技术,趁着晚上安静,把这两天学的东西摘录下.在公司学东西效率真心捉鸡,心里总觉得别扭,拿了公司的钱不干活还在那学习,表示心情不淡定,效率不行啊...晚上时间是我的,下班还是蛮开心的 ...

  10. 阿里巴巴虾米的机器学习与深度学习进阶记

    20世纪70年代初,一名名叫Geoffrey Hinton的英国研究生开始制作简单的数学模型,来描述人脑中的神经元是如何直观地理解世界的.被称为人工神经网络的技术几十年来一直被认为是不切实际的.但是在 ...

最新文章

  1. 设置Squid Cache_mem大小
  2. python编程小游戏代码-Python小游戏之300行代码实现俄罗斯方块
  3. 前端开发周边(js版页内锚点跳转方法)
  4. emoji隐藏表情_除了TouchBar可以快捷输入Emoji表情 这个快捷键也能做到
  5. B2B 企业如何高效获客增长?
  6. php中滚动显示文字,HTML如何实现文字的滚动效果
  7. Vim设置支持鼠标,光标定位,滚轮上下移动
  8. Web Visibilitychange
  9. php 3d animation,如何用HTML5的Canvas制作3D动画效果
  10. 手机 debian linux,Android上的Ubuntu Debian Armel
  11. 静态常量static和方法重载
  12. CleanMyMac X断网激活码免费共享教程免费分享
  13. QRCode二维码生成与识别
  14. 微软逼迫Office客户切换成年度付费会员:否则月度订阅价格将提高20%
  15. 20180925-2 功能测试
  16. 2018年人均寿命是多少_那是2018年
  17. 1st anniversary for my first job
  18. 【Lua 教程系列第 4 篇】Lua 中的第一行代码 hello world
  19. Java 中exists用法_sql中exists,not exists的用法
  20. 【Web技术】1154- 现代 Web 研发体系中的新一代低/零码搭建

热门文章

  1. 小屏幕android电视,神奇!只需一个方法,让电视当作手机屏幕!
  2. 鸿蒙只是电视机,荣耀智慧屏首发抢先体验:电视只是小功能,鸿蒙系统才是真亮点...
  3. miniUI datagrid 接收不到数据显示undifined
  4. 华为可信专业级认证是什么?
  5. uniapp 实现定位到当前城市
  6. 【python基础】python爬虫对网页壁纸图片批量抓取下载
  7. 安利几个可以搜大学网课答案的平台
  8. 小程序页面跳转的几种方式
  9. C语言热电阻温度查表,热电阻分度表如何看?是什么意思?
  10. windows scrip host报错代码:800A00D