キーボードの上下矢印ボタンを使用してブロックを制御するために、ブロックの div クラスに取り組んでいます。他のブロックが非表示になっている間に 7 つのブロックが表示されているブロックのリストがあります。ブロック 1 からブロック 17 までのブロックのテキストがあります。ブロック 1 からブロック 17 までの下矢印ボタンを押すと、ブロックは 'rowheight' を使用して上に移動しますが、問題があります。ブロック 7 の後で上矢印ボタンと下矢印ボタンを押すと、ブロックはそのままの位置にとどまるはずですが、黄色のブロックがブロック 8、ブロック 9、ブロック 10、ブロック 11、ブロック 12、ブロック 13、ブロック 14、ブロック 15、ブロック 16、ブロック 17。
問題はこのコードのどこかにあると思います:
if (event.keyCode == 40)
{ //down
if(current_col < totalrowcount && current_row == 1)
{
if(current_col >= displayrowcount)
{
var currentrowtop = $(".mainWrap div.row:first-child").css( "margin-top");
currentrowtop = parseInt(currentrowtop)-rowheight;
var rowtop = currentrowtop+="px";
$(".mainWrap div.row:first-child").css( "margin-top", rowtop );
}
current_col++;
}
}
この場合、下矢印ボタンを押してブロック 1 からブロック 7 に移動し、上矢印ボタンを押しても、ブロックは上に移動しません。ブロック 7 の後に下矢印ボタンを押すと、上矢印ボタンを押してから下矢印ボタンを押すと、ブロックが上に移動します。他のブロックも同様です。ブロックが隠れているブロックの終わりの後にのみ、ブロックを上に移動させたいです。たとえば、ブロック 7 にいて、ブロック 7 の後の他のブロックが隠れているので、上に移動できます。ブロックの終わりではない場合、ブロックを上に移動したくありません。
他のブロックが隠れている間にブロックの終了後にいないときに、ブロックが上に移動するのをブロックする方法を知っている人はいますか?
ご覧になる必要がある場合は、ここに私のサンプル サイトを示します: http://jsfiddle.net/VZWNE/6/