網站首頁 編程語言 正文
canvas文字居中;canvas畫布文字右對齊;canvas畫布文字左對齊;canvas文字自動換行;canvas設置行間距;
作者:i_am_a_div_日積月累_ 更新時間: 2022-07-03 編程語言canvas參考手冊
場景:畫布繪制文本,使用 context.fillText(text,x,y,maxWidth)。文本對其也就是設置xy坐標問題。
以下的畫布設定寬度假設都是width:500
一、canvas文本左對齊:
就是x軸設置為0即可。
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var str='這是需要繪制的文本內容'
ctx.fillText(str, 0, y)
二、canvas文本居中:
①首先文本有個居中屬性:ctx.textAlign = ‘center’
②其次設置x軸的位置為畫布寬度500的一半即可
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var str='這是需要繪制的文本內容'
ctx.font = 'bold 18px sans-serif';
ctx.textAlign = 'center';//文字水平居中
ctx.fillText(str, (500 / 2), 200) //第一個參數是繪制文本 第二個x設置畫布寬度一半 第三個是y坐標
三、canvas文本右對齊:
①首先有個計算文本長度的方法 ctx.measureText(‘文字內容’)
②其次設置x軸的位置為畫布寬度500 減去 文字長度即可
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var str='這是需要繪制的文本內容'
ctx.font = 'bold 18px sans-serif';
ctx.fillText(str, 500 - ctx.measureText(str).width, 200) //第一個參數是繪制文本 第二個x設置畫布寬度減去文字寬度 第三個是y坐標
四、canvas文本自動換行和設置行間距:
①首先有個計算文本長度的方法 ctx.measureText(‘文字內容’),將文本分割成幾份
②其次是依次渲染不同的文本在不同的坐標軸中
createdCanvas() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var str = '這是需要繪制的文本內容這是需要繪制的文本內容這是需要繪制的文本內容這是需要繪制的文本內容這是需要繪制的文本內容這是需要繪制的文本內容'
ctx.font = 'bold 18px sans-serif';
this.drawtext(cxt, str, 10, 10, 400) // 繪制文字并換行
},
// 文字換行
drawtext(ctx, t, x, y, w) {
//參數說明
//ctx:canvas的 2d 對象,t:繪制的文字,x,y:文字坐標,w:文字最大寬度
let chr = t.split("")
let temp = ""
let row = []
for (let a = 0; a < chr.length; a++) {
if (ctx.measureText(temp).width < w && ctx.measureText(temp + (chr[a])).width <= w) {
temp += chr[a];
} else {
row.push(temp);
temp = chr[a];
}
}
row.push(temp)
for (let b = 0; b < row.length; b++) {
ctx.fillText(row[b], x, y + (b + 1) * 20); //每行字體y坐標間隔20-就是行間距
}
}
原文鏈接:https://blog.csdn.net/i_am_a_div/article/details/125275441
相關推薦
- 2024-04-03 clickhouse報Ports are not available
- 2023-02-17 Python的OptionParser模塊示例教程_python
- 2022-04-05 關于Unity中RectTransform與transform的區別_C#教程
- 2022-05-17 Git分支管理策略_其它綜合
- 2022-05-11 Python實現圖書借閱管理系統_python
- 2022-10-25 pytorch模型轉onnx模型的方法詳解_python
- 2022-01-08 使用grid布局解決flex布局最后一行不足的問題
- 2022-04-23 arguments獲取當前所在函數
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支