国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

在小程序Canvas中使用measureText的方法示例

2024-05-06 15:28:37
字體:
來源:轉載
供稿:網友

有時候我們在使用Canvas繪制一段文本時,會需要通過measureText()方法獲取文本的寬度,例如:

創建canvas標簽

<canvas id="canvas"></canvas>

獲取一段文本的寬度

var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d');var text = ctx.measureText('foo'); // TextMetrics objecttext.width; // 16;

如上所示,measureText返回的其實是一個TextMetrics對象,它包含了文本的寬度,MDN上的解釋如下:

The CanvasRenderingContext2D.measureText() method returns a TextMetrics object that contains information about the measured text (such as its width for example).

在微信小程序現在的版本(v2.13.7)中,小程序的canvas還不支持measureText,所以我自己寫了個類似于measureText方法,通過canvas獲取文本的寬度,方法如下:

function measureText (text, fontSize=10) {  text = String(text);  var text = text.split('');  var width = 0;  text.forEach(function(item) {    if (/[a-zA-Z]/.test(item)) {      width += 7;    } else if (/[0-9]/.test(item)) {      width += 5.5;    } else if (//./.test(item)) {      width += 2.7;    } else if (/-/.test(item)) {      width += 3.25;    } else if (/[/u4e00-/u9fa5]/.test(item)) { //中文匹配      width += 10;    } else if (//(|/)/.test(item)) {      width += 3.73;    } else if (//s/.test(item)) {      width += 2.5;    } else if (/%/.test(item)) {      width += 8;    } else {      width += 10;    }  });  return width * fontSize / 10;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 苏州市| 甘洛县| 监利县| 潮安县| 临朐县| 芷江| 油尖旺区| 三门峡市| 米林县| 于都县| 南宫市| 原平市| 突泉县| 淳安县| 繁峙县| 靖州| 蓬莱市| 呼伦贝尔市| 井冈山市| 榕江县| 鲜城| 怀集县| 东兰县| 尚志市| 普格县| 瑞丽市| 宝山区| 佛坪县| 宁都县| 保德县| 四子王旗| 北碚区| 赤城县| 阿拉善左旗| 基隆市| 商水县| 九龙县| 屯昌县| 礼泉县| 拜城县| 泾源县|