1

我有以下 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);
});

我的目标是在我按下箭头键或箭头键时立即激活转换,并在释放键时停止旋转。它现在的方式不断旋转。

这是小提琴

4

1 回答 1

0

我自己想通了。它不能正常工作的原因是因为在newr(a, b)函数中我开始检查第一个参数a == 37,这意味着当我以 37 作为我的第一个参数调用函数时 - 它总是正确的。这是正确的功能:

var newr = function(a, b){
    return (d[a]) ? angle += 0.5 : (d[b]) ? angle -= 0.5 : angle;
 }
于 2013-09-23T16:59:37.393 回答