如何有效地设置元素中各个字符的样式
How to efficiently style individual characters in an element?
我一直在开发一个仅在HTML文本中运行的2D图形框架(即单个字符充当像素)。当然,我需要代码尽可能高效,因为我的目标是能够以尽可能接近60帧/秒的速度运行。
每一行字符都是它自己的HTML段落元素。我注意到,当我添加为每个单独的字符着色的功能时,代码的性能出现了大幅下降(从大约60帧/秒下降到大约5或6帧)。
我的方法来着色个人%字符
"<FONT color=" + colour + ">%</FONT>"
其中color是所需颜色的十六进制值。
我已经四处寻找了一段时间,但一直未能找到任何与我尝试的造型的动态特性相兼容的解决方案。有人知道一种更有效的动态造型方式吗?此外,深入了解为什么上述方法效率如此之低也会有所帮助。
谢谢(要查看上下文中的代码,请查看https://a8afefdfe4646d1a727ae236e436a4e29773afd3.googledrive.com/host/0BwftsCVGDOiwQ0I4WUxRTEFuWkU/TextCanvas.js,drawChar和render函数是样式代码所在的位置)
首先,不赞成使用font标记。使用CCD_ 1。
此外,这个答案假设您有这样做,而不是使用更好的canvas
元素来绘制。
创建元素时应该做的是:
//An example of the colors
var colors = [ "#e8e8e8", "#ffffff" ];
//This will hold them all for fast adding to your parent node
var fragment = document.createDocumentFragment();
for ( var i = 0; i < colors.length; i++ )
{
//Create the element
var color = document.createElement( "span" );
//Set its color
color.style.color = colors[ i ];
//Add the % symbol (innerText is IE)
color.textContent = color.innerText = "%";
//Add to fragment
fragment.appendChild( color );
}
//Now add it to the parent node (will add all the children)
parentNode.appendChild( fragment );
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 在JavaScript中输出转义字符
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 定义完全独立的样式信息
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 确定 RICHT 文本编辑器中每个字符的字符样式
- 可编辑内容更改字符之间的样式
- 将不带符号的字符/段落样式导出到javascript
- 如何有效地设置元素中各个字符的样式
- 使用jquery设置段落的第一个字符的样式
- JavaScript函数-遍历字符串,对单个字符进行样式化
- 按字符样式查找文本内容
- 文本输入中的CSS样式特定字符
- 如何基于前三个字符设置元素样式
- InDesign:如何获取具有字符样式的段落内容
- AngularJS ng 样式转义变量中的非法字符