41

コンテンツスライダーにキー押下(左矢印キーと右矢印キー)機能に応答する機能を提供したいと思います。いくつかのブラウザとオペレーティングシステムの間のいくつかの競合について読みました。

ユーザーは、グローバルWebサイト(本文)にいる間、コンテンツをナビゲートできます。

擬似コード:

ON Global Document

IF Key Press LEFT ARROW

THEN animate #showroom css 'left' -980px


IF Key Press RIGHT ARROW

THEN animate #showroom css 'left' +980px

クロスオーバー(ブラウザ、OS)の競合がないソリューションが必要です。

4

5 に答える 5

96
$("body").keydown(function(e) {
  if(e.keyCode == 37) { // left
    $("#showroom").animate({
      left: "-=980"
    });
  }
  else if(e.keyCode == 39) { // right
    $("#showroom").animate({
      left: "+=980"
    });
  }
});
于 2010-11-05T08:40:36.470 に答える
15
$("body").keydown(function(e){
    // left arrow
    if ((e.keyCode || e.which) == 37)
    {   
        // do something
    }
    // right arrow
    if ((e.keyCode || e.which) == 39)
    {
        // do something
    }   
});
于 2012-07-16T18:06:23.303 に答える
6

これは私にとってはうまくいきます:

$(document).keypress(function (e){ 
    if(e.keyCode == 37) // left arrow
    {
        // your action here, for example
        $('#buttonPrevious').click();
    }
    else if(e.keyCode == 39)    // right arrow
    { 
        // your action here, for example
        $('#buttonNext').click();
    }
});
于 2012-07-27T11:28:13.487 に答える
1

私はこのテンプレートを使用することを好みます:

$(document).keypress(function(e){
    switch((e.keyCode ? e.keyCode : e.which)){
        //case 13: // Enter
        //case 27: // Esc
        //case 32: // Space
        case 37:   // Left Arrow
            $("#showroom").animate({left: "+=980"});
        break;
        //case 38: // Up Arrow
        case 39:   // Right Arrow
            $("#showroom").animate({left: "-=980"});
        break;
        //case 40: // Down Arrow
    }
});
于 2014-11-10T15:18:12.107 に答える
1

名前付き関数式を使用すると、コードをよりクリーンに保つのに役立つ場合があります。

function go_left(){console.log('left');}
function go_up(){console.log('up');}
function go_right(){console.log('right');}
function go_down(){console.log('down');}


$(document).on('keydown',function(e){

   var act={37:go_left, 38:go_up, 39:go_right, 40:go_down};
   if(act[e.which]) var a=new act[e.which];

});
于 2015-05-30T15:57:10.650 に答える