H5做出手机摇一摇技巧的完成步骤
发表时间:2023-12-24 来源:明辉站整理相关软件相关文章人气:
[摘要]今天教大家用HTML5来在网页里实现一个很炫酷的功能,手机摇一摇。如果你之前做过手机端的开发,可能对于这样的功能非常了解。但是下面,我们将在Web上首次实现这个功能。方向事件deviceorientation该事件实在设备方向发生变化时触发, 使用方法如下;window.addEventListe...
今天教大家用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 从设备获取数据的频率, 单位是毫秒
代码部分
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>摇一摇</title>
</head>
<body>
<p>
摇一摇
</p>
<script>
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("你的设备不支持位置感应");
}
</script>
</body>
</html>
相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
html5中的DOM编程的实现步骤
HTML里的事件怎么使用
用canvas做出时钟实现步骤
以上就是H5做出手机摇一摇功能的实现步骤的详细内容,更多请关注php中文网其它相关文章!
网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。