我正在研究块的 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/