1

これは私がこれまでに得たものです

http://jsfiddle.net/qEKfg/

クリックするとアクティブになり、キーボードのキーのように見える2つのボタンです。
関連するキー (CTRL および D) をキーボードで押したときにのみアクティブ化 (アニメーション化) するようにしようとしています。CTRL+D はホットキーであるため、これにより、Web サイトをブックマークするための「アニメーション化されたボタン」効果が作成されます。ページをブックマークします。

しかし、HTMLまたはjQueryのキーボードキーで動作するように設定する方法がわかりません
。本当に感謝しています

4

2 に答える 2

2

以下はあなたのために働くはずです。ただし、ウィンドウがフォーカスを失うため、5 秒後に画面上の「ボタン」を解放するタイマーを追加したことに注意してください。その特定の時間にウィンドウがフォーカスを失うと、keyup イベントが発生しなくなります。

$(document).ready(function() {
    var keys = [];
    $(window).on('keydown keyup', function(e) {
        if (e.type == "keydown") {
            if (e.keyCode == 17 || e.keyCode == 91) {
                $("a.a_demo_two:contains('CTRL')").addClass("active");
                keys[0] = e.keyCode;
            }
            else if (e.keyCode == 68) {
                $("a.a_demo_two:contains('D')").addClass("active");
                keys[1] = 68;
            };
            if ((keys[0] == 17 || e.keyCode == 91) && keys[1] == 68) {
                setTimeout(function() {
                    $('a.a_demo_two').removeClass("active");
                }, 5000);
            }
        }
        else {
            if (e.keyCode == 17 || e.keyCode == 91) {
                $("a.a_demo_two:contains('CTRL')").removeClass("active");
            }
            else if (e.keyCode == 68) {
                $("a.a_demo_two:contains('D')").removeClass("active");
            }
            keys = [];
        }
    });
});​

デモ

于 2012-09-30T00:19:33.940 に答える
0

基本的には、ハンドラーkeydownkeyupイベントを配置して、必要なものをトリガーするだけです。そんな感じ

$('body').on('keydown', function(e) {   
   console.log(e)    
   if (e.ctrlKey) $('.a_demo_two').trigger('mousedown')
   if (e.keyCode === 100) $('.a_demo_two').trigger('mousedown')       
});

$('body').on('keyup', function(e) {
   console.log(e)    
   if (e.ctrlKey) $('.a_demo_two').trigger('mouseup')
   if (e.keyCode === 100) $('.a_demo_two').trigger('mouseup')       
});

</p>

于 2012-09-30T00:01:47.497 に答える