尝试使用按键来制作动画

时间:2015-05-18 19:38:34

标签: javascript jquery

这是我目前的代码,我似乎无法使用键盘动画。有什么帮助吗?

(文档)$。就绪(函数(){

 $('#c4').on('keydown', function(e) {
    if (e.which == 81) {// 81 is the value of q
        animationkeydown(this, 'push');
    }

});

function animationkeydown(element,animation){

element = $(element);
element.on('keydown',
    function() {
        element.addClass('animated push ' + animation);        

        //waits for animation to finish before removing//

        window.setTimeout( function(){
            element.removeClass('animated ' + animation);
        }, 100);         

    });

}

1 个答案:

答案 0 :(得分:2)

什么是#c4,为什么要循环每个?如果它是一个ID,那么它应该只有一个元素。

无论如何,你正在寻找添加onkeydown事件(这是jQuery)。假设你有一堆标识为#c4的DOM元素(你不应该让它们成为类),你可以这样做:

$(document).ready(function(){
     $('#c4').on('keydown', function(e) {
        if (e.which == 81) {// 81 is the value of q
            animationClick(this, 'push');
        }
}); 

这会将keydown事件应用于与该id匹配的每个元素。在回调中,e包含事件,因此e.which会为您提供按下的键。

编辑:在使用animationClick代码的评论之后,假设一个有效

$(document).ready(function(){
     $('#c4').on('keydown', function(e) {
        var that = this; // to mimic the way you pass the element
        var animation = "push";
        if (e.which == 81) {// 81 is the value of q
            that.addClass('animated push ' + animation); //waits for animation to finish before removing
            window.setTimeout(function() {
                that.removeClass('animated ' + animation);
            }, 100);
        }
     });
});