假设我有一个单元格背景为红色的html表。我想使用jquery在表上循环打印字母表(a-Z),例如字母J如下图所示:
单击此处查看图像
我可以创建一个表和一个指针,它可以在表的所有单元格中循环,并将背景颜色更改为黑色。然而,我不明白对于特定的字母表应该突出显示哪些单元格。例如,要在30 x 30的表格上显示字母"A",我需要更改哪些单元格的背景,以便在屏幕上显示字母A,对于其他字母,以此类推。这有什么模式吗?
这是我迄今为止的代码:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var x=0;
var y=1;
function movePointer(){
printCell();
if(x==30){
x=0;
y++;
}
if(y==31){
y=1;
x=0;
$(".pointer").css("background","red");
}
x++;
}
function printCell(){
$("#"+x+"_"+y).css("background","black");
}
function eraseCell(){
}
setInterval(movePointer,1);
});
</script>
</head>
<body style="margin:0; padding:0">
<?php
$h=30;
$v=30;
echo "<table border='1'>";
for($y=1;$y<=$v;$y++){
echo "<tr>";
for($x=1;$x<=$h;$x++){
echo "<td style='border:1px solid red; width:20px; height:20px'>";
echo "<div style='width:20px; height: 20px; background:red' class='pointer' id='".$x."_".$y."'></div>";
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</body>
要实现这一点,您将需要类似于"位图"的东西,因此您将需要一个字母表映射/数组,该映射/数组为每个元素附加了另一个数组,该数组具有不同颜色的正方形索引。
编辑:
一个简单的例子是使用类似的东西:
var alphabet = ("abcdefghijklmnopqrstuvwxyz").split("");
var letterBitmap = {};
$.each(alphabet,function(index,data){
letterBitmap[data] = new Array("1.1");
console.log(letterBitmap[data]);
});
请注意,表示new Array("1.2")的行实际上是需要并置的第一个块的坐标,其中1为行,2为列。对于一封信,你应该有这样的东西:
new Array("1.1"、"2.3"、"5.2")等,注意坐标无效,它们只是概念的证明。
在你有了这样一种格式的数据后,很容易通过坐标数组,分割它们,然后选择正确的索引来着色。
希望能有所帮助。
您可以为每个字母创建某种位图作为多维数组。
您可以编写一个简单的html,通过单击单元格来绘制字母。然后返回一个带有单元格状态的十六进制数字。然后在代码中使用生成的数据。
另一种选择是在谷歌上搜索一些已经完成字母的"Ascii字体表"(我试过了,但运气不好)。
如果一切都失败了,您可以使用控制台命令"banner"为a-Z生成此文本。
更简单的方法是编写这个迷你绘图html工具:D