首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome桌面中的ondevicemotion返回true

Chrome桌面中的ondevicemotion返回true
EN

Stack Overflow用户
提问于 2013-11-19 17:40:20
回答 1查看 1.2K关注 0票数 1

我使用的是github的"shake“函数--它有一个基于浏览器的javascript检测功能。

代码语言:javascript
复制
//feature detect
this.hasDeviceMotion = 'ondevicemotion' in window;

即使在OS的Chrome上也是如此,感觉很奇怪,因为我不愿意在桌面上摇动我的显示器。

在OS上的Safari在测试时会返回"false“。

我已经搜索过了,但还是找不到Chrome为什么决定走这条路。这让我很恼火。

有没有更好的方法来进行这种检测?并不是所有的“移动设备”都有摇动功能。或者不让浏览器具有该功能,因为它似乎不能在windows手机中工作。

EN

回答 1

Stack Overflow用户

发布于 2014-05-31 05:22:27

我不太确定你的问题,我只是在深入研究它的功能,但是你可以使用像这样的东西

代码语言:javascript
复制
X : <span id="varx"></span>
Y : <span id="vary"></span>
Z : <span id="varz"></span>
<script>
    window.ondevicemotion = function(event){
        var accelerationX = event.accelerationIncludingGravity.x;
        var accelerationY = event.accelerationIncludingGravity.y;
        var accelerationZ = event.accelerationIncludingGravity.z;

        document.getElementById("varx").innerHTML = accelerationX;
        document.getElementById("vary").innerHTML = accelerationY;
        document.getElementById("varz").innerHTML = accelerationZ;
    };
</script>

只有当事件有accelerationIncludingGravity属性时它才会显示这个值,这只在移动设备中可用,而不是100%这是你想要的,你也可以触发一个事件请求if(accelerationX){//execute action}else{//execute planB}希望这是帮助,如果它没有,我将很高兴了解并获得一些反馈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20067969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档