JS检测设备方向疑问

图片描述

<!doctype html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p id="tip"></p>
    <script>
        window.addEventListener('deviceorientation', function (orientData) {
            document.getElementById('tip').innerHTML = orientData.alpha;
        });
    </script>
</body>
</html>

手机扫描二维码查看效果,现在的效果是进入页面后晃动手机会显示手机X轴的角度信息,到达0度临界值的时候,左右晃动手机角度的变化规律是357,358,359,0,1,2,3以此类推的这种格式,有没有办法更改成到达0度的时候是-3,-2,-1,0,1,2,3,到达359的时候是357,358,359,360,361,362的这种格式呢?

阅读 2.7k
3 个回答

谢邀,我没做过,提供一个想法吧你做一个全局变量。你用系统自带的判断是左右移动,然后你给的全局变量做加减。这样不就可以了

这个不是很好实现,因为你不知道用户初次打开是处于什么状态,如果不考虑这个因素,可以做个类似分页的效果,比如初始page=1,实时检测动向,比如1-2,认为是+,反之认为是-,如果+的情况,突然减少300多,则是page+1,如果-的情况突然增加300多,则是page-1,不过不排除快速旋转时会出现什么异常,个人没这样尝试过,只说一下想法

加个定时器,把几十毫秒之前的数据记录下来,然后到 0 和 360 附近的时候根据之前记录的数据自己调整

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题