角度旋转/平移罗盘旋转javascript问题

角度旋转/平移罗盘旋转javascript问题,javascript,webkit,iphone,compass-geolocation,Javascript,Webkit,Iphone,Compass Geolocation,我正在为iphone构建一个指南针,duh,只是为了实验目的,并学习如何用javascript和phonegap实现它 现在我已经能够获得度了,我能够使用webkit transform translateZ(或者我可以使用rotate)将0-360度应用于div(我们称之为“轮子”) 但我有一个错误: 当车轮从0度旋转到359度时,一切正常,但当度再次旋转到0度时,车轮不是顺时针平稳旋转,而是逆时针快速旋转到0度位置 我不知道我是否清楚,因为没有一个例子就很难解释 基本上,我的问题是找到正确的

我正在为iphone构建一个指南针,duh,只是为了实验目的,并学习如何用javascript和phonegap实现它

现在我已经能够获得度了,我能够使用webkit transform translateZ(或者我可以使用rotate)将0-360度应用于div(我们称之为“轮子”)

但我有一个错误:

当车轮从0度旋转到359度时,一切正常,但当度再次旋转到0度时,车轮不是顺时针平稳旋转,而是逆时针快速旋转到0度位置

我不知道我是否清楚,因为没有一个例子就很难解释

基本上,我的问题是找到正确的脚本来移动轮子,从值0-360开始,我可以从iphone轻松获得


欢迎您提出任何建议。

当您超过360时,请翻滚。以下是一个示例:

[编辑]我已更新代码以处理逆时针旋转。以下是我基于jQuery的Javascript的外观:

  $(function() {
    var rotator = function(class, inc) {
      var degrees = 0;
      return function() {
        $('.' + class)
          .css({'-webkit-transform': 'rotate(' + degrees + 'deg)'})
          .css({'-moz-transform': 'rotate(' + degrees + 'deg)'})
          ;
        degrees += inc;
        if (degrees > 360) degrees -= 360;
        if (degrees < 0) degrees += 360;
      };
    };
    setInterval(rotator('clockwise', 2), 33);
    setInterval(rotator('counter-clockwise', -2), 33);
  });
$(函数(){
var旋转器=功能(类别,inc){
变量度=0;
返回函数(){
$('..+类)
.css({'-webkit transform':'rotate('+degrees+'deg')})
.css({'-moz transform':'rotate('+degrees+'deg')})
;
度+=公司;
如果(度>360)度-=360;
如果(度<0)度+=360;
};
};
设定间隔(旋转器('顺时针',2),33);
设定间隔(旋转器('逆时针',-2),33);
});

我看不到任何可以发表评论的按钮……对不起,我必须在这里写。。。 这是我的密码

deg是iphone给我的值,它可以从0到360

document.getElementById('mycompass').style.webkittTransform=“rotateZ(“+-deg+“deg”)

当“mycompass”变为359然后变为0时,它会一直向后旋转

在你的例子中,我可以有大于360的值,所以它对我不起作用


我的错误在哪里?

为什么投票被否决了?发表评论的按钮被称为“添加评论”,就在答案的正下方……我在他的答案下看不到它……这是一个bug吗?@chpwn-“添加评论”功能需要50次重复@弗朗西斯科-不需要很长时间就可以获得50个代表;在那之前这是好的。。。