0

jquery コードに問題があります。つまり、jquery を使用してスネーク ゲームを作成しようとしています。

$(document).ready(function(e) {
initial_move();
$(document).keydown(function(e){
         switch (e.keyCode) { 
        case 38:
            $('#snake-body').stop().add('#one').animate({marginTop:'-2%'},'fast');
            return('null');
        case 37: 
            return('null');
        case 39:
            return('null');
        case 40: 
            alert('bottom');
            return('null');
          }
      });
});
function initial_move(){
  $('#snake-body').css('margin-left','0%');
  $('#snake-body').animate({marginLeft:'100%'},5000,'linear',initial_move);
}

<div id="wrapper">
<div id="snake-body">
   <div id="2" class="part"></div>
       <div id="1" class="part"></div>
    </div>
</div>

キーダウンに合わせてスネークパーツを動かそうとして行き詰まりました。上矢印キーを押すと、最初にdivがid="one"上に移動し、その後に続きid="two"ます。

しかし、このコードは両方の div を同時に に移動しmargintop:'-2%'ます。id="one"コードで divだけを対象にしているのでわかりません..

   case 38:
   $('#snake-body').stop().add('#one').animate({marginTop:'-2%'},'fast');

誰かがこれで私を助けてくれることを願っています。前もって感謝します。

4

1 に答える 1

0

このコード:

$('#snake-body').stop().add('#one').animate({marginTop:'-2%'},'fast');

次のコードと同じです:

$('#snake-body').stop();
$('#snake-body, #one').animate({marginTop:'-2%'},'fast');

#snake-bodyつまり、 と#oneパーツ の両方を更新しています。

これは、既に選択したものに div をadd()追加するため#oneです... つまり、親 (#snake-body) とパーツ (#one) の両方が同時に選択されています。

おそらく代わりにやりたいことはこれです:

$('#snake-body').stop();
$('#one').animate({marginTop:'-2%'},'fast');

目的に応じて.stop()、親ではなく個々のパーツを停止したい場合があります。

$('#snake-body .part').stop();
$('#one').animate({marginTop:'-2%'},'fast');
于 2013-06-09T19:29:59.313 に答える