您的位置:首页> HTML5教程> canvas API

canvas fillText()

2019-8-25 09:43| 作者: admin| 查看: 134| 评论: 0|来自: 蚂蚁部落

通过此方法可以在画布上绘制带有填充的文本。

分解方法的名称可以有助于理解与记忆,fillText由如下两个单词合成:

(1). fill:翻译成汉语具有"填充"的意思。

(2).text:翻译成汉语具有"文本"的意思。

也就是此方法可以绘制带有填充的文本,绘制描边文本参阅canvas strokeText()一章节。

语法结构:

[JavaScript] 纯文本查看 复制代码
context.fillText(text,x,y,maxWidth)

参数解析:

(1).text:规定将要绘制的文本内容。

(2).x:规定文本开始绘制的x轴坐标。

(3).y:规定文本开始绘制的y轴坐标,但是其规定的是基线坐标。

(4).maxWidth:规定允许最大的文本宽度。

浏览器兼容:

(1).IE9+浏览器支持此方法。

(2).edge浏览器支持此方法。

(3).谷歌浏览器支持此方法。

(4).火狐浏览器支持此方法。

(5).Opera浏览器支持此方法。

(6).Safari浏览器支持此方法。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
  width:300px;
  height:150px;
}
</style> 
<script>
window.onload = () => {
  let cvs=document.getElementById("ant");
  let ctx=cvs.getContext("2d");

  ctx.font="30px Verdana";
  ctx.fillText("蚂蚁部落",10,90);
}
</script>
</head>
<body>
<canvas id="ant">当前浏览器不支持canvas标签</canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201908/25/094451o11ibaoo1j0omu4i.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).绘制文本"蚂蚁部落"。

(2).默认的填充颜色为黑色。

(3).文本从(10,90)位置开始绘制。

(4).通过font属性设置文本的字体大小和类型。

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
  width:300px;
  height:150px;
}
</style> 
<script>
window.onload = () => {
  let cvs=document.getElementById("ant");
  let ctx=cvs.getContext("2d");

  ctx.font="30px Verdana";
  ctx.fillText("蚂蚁部落",10,90,80);
}
</script>
</head>
<body>
<canvas id="ant">当前浏览器不支持canvas标签</canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201908/25/094527p3a18f7l8rs1ol7s.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

方法的最后一次参数用户规定文本的最大宽度。

如果文本宽度超过规定的宽度,那么文本就会在横向上被压缩。

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
  width:300px;
  height:150px;
}
</style> 
<script>
window.onload = () => {
  let cvs=document.getElementById("ant");
  let ctx=cvs.getContext("2d");

  ctx.font="30px Verdana";
  ctx.fillText("xyz",10,0);
}
</script>
</head>
<body>
<canvas id="ant">当前浏览器不支持canvas标签</canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201908/25/094600szjk0vzvlgvq4kvg.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

这一点一定要注意,可能不少朋友想当然认为是文本左上角的坐标位置。

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
  width:300px;
  height:150px;
}
</style> 
<script>
window.onload = () => {
  let cvs=document.getElementById("ant");
  let ctx=cvs.getContext("2d");

  ctx.font="30px Verdana";
  
  let gradient=ctx.createLinearGradient(10,90,cvs.width,0);
  gradient.addColorStop("0","green");
  gradient.addColorStop("0.5","blue");
  gradient.addColorStop("1.0","red");

  ctx.fillStyle=gradient;
  ctx.fillText("蚂蚁部落",10,90);
}
</script>
</head>
<body>
<canvas id="ant">当前浏览器不支持canvas标签</canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201908/25/094630lhhgnk0gzw7kwbqw.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码通过渐变填充文本,当然也可以用其他内容填充,比如颜色和图案。

关于填充的更多内容本文不再介绍,具体可以参阅canvas fillStyle一章节。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部