【发布时间】:2014-12-16 06:26:58
【问题描述】:
我有一个显示为对象列表的数组。对于列表中的每个名称,其左侧应该有一个圆圈,显示该名称的第一个字母。
HTML5 画布似乎是实现这一目标的最简洁方法,但我对画布没有什么经验。添加画布后,该函数将作为 getContext 上的未定义引用中断。
感谢您的帮助!
小提琴: http://jsfiddle.net/dpnq7sj4/
代码:
names = ["Joe","Bob","Clark","Henry"];
var numberOf = names.length;
//Players List
var text = "<ul>";
for (i = 0; i < numberOf; i++) {
var nameLetter = names[i].charAt(0);
text += "<li class='playerListItem'><canvas id="myCanvas" height:100px width:100px></canvas><label><input type='checkbox' class='playerCheckbox'>" + names[i] + "</label></li>";
//Circle
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 25;
context.beginPath();
context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
context.fillStyle = '#f0f0ef';
context.fill();
context.fillStyle = "black";
var width = context.measureText(nameLetter).width;
var height = context.measureText("w").width; // this is a GUESS of height
context.fillText(text, 200 - (width/2) ,200 + (height/2));
}
text += "</ul>";
//Ammend HTML
document.getElementById("recentPlayersContainer").innerHTML = text;
【问题讨论】:
-
所以,我们必须调试或让这段代码工作?您的代码目前无法运行...您不能简单地使用 css 来设置 li 样式并显示带有图像的项目符号吗? w3schools.com/css/css_list.asp
-
我可以用一张图片来代替项目符号点,然后在这张图片上设置
nameLetter,但是格式草率且不一致
标签: javascript html dom canvas