H5做出手机摇一摇功能的实现步骤

今天教大家用html5来在网页里实现一个很炫酷的功能,手机摇一摇。如果你之前做过手机端的开发,可能对于这样的功能非常了解。但是下面,我们将在web上首次实现这个功能。

方向事件deviceorientation

该事件实在设备方向发生变化时触发, 使用方法如下;

window.addEventListener(‘deviceorientation’, orientationHandler, true);

回调函数orientationHandler会接收到一个DeviceOrientationEvent类型参数, 包含以下信息.

属性名 说明

absolute 如果方向数据跟地球坐标系和设备坐标系有差异, 则为true

alpha 设备在alpha方向上旋转的角度, 范围为0-360

beta 设备在Beta方向上旋转的角度, 范围为-180-180

gamma 设备在Gamma方向上旋转的角度, 范围为-90-90

移动事件devicemotion

该事件实在设备位置发生变化时触发

window.addEventListener(‘devicemotion’, motionHandler, false);

该回调函数会接受DeviceMotionEvent类型参数, 包含以下信息.

属性名 说明

acceleration 设备在X,Y,Z三个轴的方向上移动的距离, 以抵消重力加速度

accelerationIncludingGravity 设备在X,Y,Z三个轴方向移动的距离, 包含重力加速度

rotationRate 设备在Alpha, Beta, Gamma三个方向旋转的角度

interval 从设备获取数据的频率, 单位是毫秒

代码部分

        摇一摇  

摇一摇

const SHAKE_SPEED = 300; let lastTime = 0;//上次变化的时间 let x = y = z = lastX = lastY = lastZ = 0;//位置变量初始化 function motionHandler(event) { let acceleration = event.accelerationIncludingGravity; let curTime = Date.now();//取得当前时间 if ((curTime - lastTime) > 120) { let diffTime = curTime - lastTime; lastTime = curTime; x = acceleration.x; y = acceleration.y; z = acceleration.z; //计算摇动速度 let speed = Math.abs(x + y + z - lastX - lastY - lastZ) / diffTime * 1000; if (speed > SHAKE_SPEED) { alert("你摇动了手机"); } lastX = x; lastY = y; lastZ = z; } } if(window.DeviceMotionEvent) { window.addEventListener('devicemotion', motionHandler, false); } else { alert("你的设备不支持位置感应"); }

相信看了这些案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

相关阅读:

html5中的DOM编程的实现步骤

HTML里的事件怎么使用

用canvas做出时钟实现步骤

以上就是H5做出手机摇一摇功能的实现步骤的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 16:55:05
下一篇 2025年12月21日 16:55:16

相关推荐

发表回复

登录后才能评论
关注微信