HTML5画布文本包装教程
2014-01-01 19:43
525 查看
文字换行与HTML5画布,我们可以创建一个自定义函数,需要画布的背景下,一个文本字符串,一个位置,最大宽度和高度一致。功能应该使用measureText()方法画布的背景下一行应该包装时计算。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
function wrapText(context, text, x, y, maxWidth, lineHeight) {
var words = text.split(' ');
var line = '';
for(var n = 0; n < words.length; n++) {
var testLine = line + words
+ ' ';
var metrics = context.measureText(testLine);
var testWidth = metrics.width;
if (testWidth > maxWidth && n > 0) {
context.fillText(line, x, y);
line = words
+ ' ';
y += lineHeight;
}
else {
line = testLine;
}
}
context.fillText(line, x, y);
}
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var maxWidth = 400;
var lineHeight = 25;
var x = (canvas.width - maxWidth) / 2;
var y = 60;
var text = 'All the world \'s a stage, and all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts.';
context.font = '16pt Calibri';
context.fillStyle = '#333';
wrapText(context, text, x, y, maxWidth, lineHeight);
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="578" height="200"></canvas>
<script>
function wrapText(context, text, x, y, maxWidth, lineHeight) {
var words = text.split(' ');
var line = '';
for(var n = 0; n < words.length; n++) {
var testLine = line + words
+ ' ';
var metrics = context.measureText(testLine);
var testWidth = metrics.width;
if (testWidth > maxWidth && n > 0) {
context.fillText(line, x, y);
line = words
+ ' ';
y += lineHeight;
}
else {
line = testLine;
}
}
context.fillText(line, x, y);
}
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var maxWidth = 400;
var lineHeight = 25;
var x = (canvas.width - maxWidth) / 2;
var y = 60;
var text = 'All the world \'s a stage, and all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts.';
context.font = '16pt Calibri';
context.fillStyle = '#333';
wrapText(context, text, x, y, maxWidth, lineHeight);
</script>
</body>
</html>
相关文章推荐
- HTML5画布文本颜色教程
- HTML5画布文本中风教程
- HTML5画布文本标准教程
- HTML5画布文本基线教程
- HTML5画布文本教程
- HTML5画布灰度图像颜色教程
- HTML5画布图像加载程序教程
- HTML5画布图像数据教程
- HTML5画布转化图像颜色教程
- HTML5画布矩形教程
- HTML5画布颜色教程
- HTML5又一个点:Canvas KineticJS文本教程!
- HTML5画布路径教程
- HTML5画布Canvas文本填充、线段属性、裁剪、透明度与像素合并方式
- HTML5画布模式教程
- HTML5画布圈教程
- HTML5画布圆角教程
- HTML5画布矩形教程
- HTML5画布kineticjs灰度图像教程
- HTML5画布图片教程