如何使用jQuery在屏幕上绘制字母

时间:2012-03-29 12:46:15

标签: php javascript jquery

假设我有一个html表,单元格背景为红色。我想使用jquery在表格的循环中打印字母(A-Z),例如字母J看起来如下图所示:

Click here to view the image

我可以创建一个表和一个指针,它可以循环遍历表格的所有单元格,并将背景颜色更改为黑色。但是,我不明白要为特定字母突出显示哪些单元格。例如,要在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>

3 个答案:

答案 0 :(得分:2)

为了达到这样的目的,你需要像&#34; 位图&#34;这样的东西,所以你需要一个附加的字母地图/数组 每个元素的另一个数组,其中索引的方块的颜色不同。

编辑:

一个简单的例子就是使用类似的东西:

var alphabet = ("abcdefghijklmnopqrstuvwxyz").split("");
var letterBitmap = {};
$.each(alphabet,function(index,data){
letterBitmap[data] = new Array("1.1");
console.log(letterBitmap[data]);
});

请注意,表示新数组(&#34; 1.2&#34;)的行实际上是第一个需要对其进行匹配的块的坐标,给定1作为行,2作为列。对于一封信,你应该有类似的东西:

new Array(&#34; 1.1&#34;,&#34; 2.3&#34;,&#34; 5.2&#34;)等,请注意坐标无效他们就是概念证明。

以这种格式获取数据之后,通过该坐标数组,拆分它们并选择正确的颜色索引非常简单。

希望它有所帮助。

答案 1 :(得分:0)

您可以为每个Letter创建某种Bitmap作为多维数组。

答案 2 :(得分:0)

您可以编写一个简单的html,通过单击单元格来绘制字母。然后返回带有单元状态的十六进制数。然后在代码中使用结果数据。

其他选项是在谷歌搜索一些“Ascii字体表”(我试过,但不幸运)用已经完成的字母。

如果一切都失败了,您可以使用控制台命令“banner”为a-Z生成此文本。

更简单的方法是编写这个迷你绘制html工具:D