3

我正在制作一个单色的浏览器内“LED”显示屏。它应该有一个由 33 x 278 个“LED”组成的矩阵,每个 LED 都是 3 x 3 个“真实”像素。它将用于以 HH:MM 格式显示进度条和当前时间,或以“NN days”格式显示剩余天数。它也将是可调节的(用户将能够设置时间)。

我看到两种方法可以做到这一点:

  1. 使用<canvas>并绘制“LED”。
  2. <div>为每个“LED”使用一个。我觉得我可以更好地控制每个“LED”,但几乎 10 000div秒的想法让我有些害怕。

我想知道哪种方法更可取以及为什么。或者还有其他方法吗?

4

1 回答 1

7

10,000 个 div应该会吓到你。这些中的每一个,尽管只是一个很小的像素,将由浏览器存储,其中包含许多未定义的 html 属性以及内部浏览器属性,它们都占用内存。此外,每个 div 都需要由浏览器“流动”或以图形方式定位,从而花费计算时间。

对于像素级可修改图形,您应该使用 a canvas,这是它们的设计和优化目的。

这是一个在画布上随机绘制 3x3“像素”的快速canvas演示:

http://jsfiddle.net/jtbowden/feusZ/

这真的不是那么多代码,也不是太难。一旦你有了一个setPixel函数,剩下的就是你想要对像素做的事情的实现。

这是一个显示尺寸的版本,它会自动读取画布尺寸:

http://jsfiddle.net/jtbowden/9jQf4/

还有许多其他方法可以做到这一点,例如操纵单个像素或绘制非常短的线。

于 2012-04-24T17:43:11.000 回答