温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HTML 5实现的手机摇一摇

发布时间:2020-06-06 07:30:33 来源:网络 阅读:1585 作者:genuinecx 栏目:移动开发

  自从HTML 5的DeviceOrientation被开发出来,很多开发者开始研究其特性,并对此开发出了摇一摇,计步器等应用。小编近日闲着无聊,也开发出了一个摇一摇网页应用,感兴趣的小伙伴可亲身体验一下。


  扫码访问

HTML 5实现的手机摇一摇

HTML 5实现的手机摇一摇

  效果图

HTML 5实现的手机摇一摇

HTML 5实现的手机摇一摇


  技术解析


  (1) DeviceOrientation

  DeviceOrientation是HTML 5的重要特性之一,它将底层的方向传感器和运动传感器进行了高级封装,提供了对DOM两种事件的支持:

  1. deviceOrientation:它封装了方向传感器的数据事件,可以获取手机静止状态下的方向数据,如手机的倾斜角度和方向。

  2. deviceMotion:它封装了运动传感器的数据事件,能够获取手机运动过程中的运动加速度等数据。

  通过这两个事件,我们能够获取到移动电话的重力感应,罗盘方向等数据,然后利用这些数据做一些有趣的事情。比如,手机上的重力感应球就是使用了DeviceOrientation。


  DeviceOrientation API事件


  监控移动事件

if (window.DeviceMotionEvent) {
  window.addEventListener('devicemotion',deviceMotionHandler, false);
}

 获取重力加速度

function deviceMotionHandler(eventData) {
  var acceleration =eventData.accelerationIncludingGravity;
}


  (2) 证实用户在摇手机的几点考虑:


  1. 大部分用户摇手机有一个主方向。

  2. 摇手机过程中加速度数据在x,y,z方向上数据一定会改变。

  3. 不能误判手机正常移动过程。比如,手机在口袋中,走路的时候,加速度数据也会发生变化。


  因此,我们计算摇手机的过程不仅仅是计算手机在x,y,z三个方向上加速度的变化,时间的变化间隔,还包含了在固定时间间隔中变化的速度,以此来触发事件。

HTML 5实现的手机摇一摇

  源码托管在GITHUB上 


   https://github.com/favccxx/favshake



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI