【问题标题】:Compass spinning javascript problem with angle - rotate/translate带有角度的指南针旋转javascript问题 - 旋转/平移
【发布时间】:2010-02-27 17:03:17
【问题描述】:

我正在为 iphone 构建一个指南针,呃,只是为了实验目的,并学习如何使用 javascript 和 phonegap 进行操作。

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

但我有一个错误:

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

我不知道我很清楚,因为没有例子就不容易解释......'

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

欢迎提出任何建议。

【问题讨论】:

  • 为什么这被否决了?

标签: javascript webkit iphone compass-geolocation


【解决方案1】:

当您超过 360 度时翻转。这是一个示例:http://gutfullofbeer.net/rotate.html

[编辑] 我已经更新了处理逆时针旋转的代码。这是我的基于 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);
  });

【讨论】:

    【解决方案2】:

    我没有看到任何制作 cmets 的按钮...对不起,但我必须在这里写... 这是我的代码

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

    document.getElementById('mycompass').style.webkitTransform = "rotateZ("+-deg+"deg)";

    当 'mycompass' 达到 359 和 0 时,它会一直旋转回来......

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

    我的错误在哪里?

    【讨论】:

    • 制作 cmets 的按钮叫做“添加评论”,就在答案的正下方...
    • 在他的回答下看不到它......这是一个错误吗?
    • @chpwn - “添加评论”功能需要 50 个代表; @francescoB - 获得 50 个代表不需要很长时间;在那之前这很好......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多