2013-09-23 25 views
1

我有以下的jQuery代码:只有运行时键被按下CSS变换 - jQuery的

$(document).ready(function(){ 
    var pane = $(document),   
     box = $("#hero"),    //Our character 
     w = pane.width() - box.width(), //Width 
     d = {},       //Empty object 
     angle = 0; 


     var newr = function(a, b){ 
      return (a == 37) ? angle += 0.5 : (b == 39) ? angle -= 0.5 : angle; 
     } 
     $(window).keydown(function(e) { 
      d[e.which] = true; 
     }); 
     $(window).keyup(function(e) { 
      d[e.which] = false; 
     }); 

     setInterval(function() { 
      box.css({ 
       transform: function(index,value) { return "rotate(" + newr(37, 39) + "deg)"; } 
      }); 
     }, 20); 
}); 

我的目标是尽快启动改造为我打要么箭头键,当钥匙被释放时停止旋转。它现在的方式不断旋转。

Here is the fiddle

回答

0

我想通了自己。它不能正常工作的原因是因为在newr(a, b)函数中,我首先检查是否第一个参数a == 37,意思是当我用37作为第一个参数调用该函数时 - 它将始终为真。这是正确的功能:

var newr = function(a, b){ 
    return (d[a]) ? angle += 0.5 : (d[b]) ? angle -= 0.5 : angle; 
} 
+0

我刚刚发布了一个非常类似的示例。其实它应该是'return(d [a])?角度+ = 0.5:(d [b])?角度 - = 0.5:角度;'为右箭头也工作:) – Harry

+0

@哈利当然是 - 愚蠢的错误由我:) –

+0

这就是好伙伴。即使是我们最好的:)也会发生 – Harry

相关问题