国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}

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

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

圖片精選

主站蜘蛛池模板: 祁阳县| 彰化县| 同江市| 青铜峡市| 余江县| 西安市| 明光市| 沁水县| 繁峙县| 龙井市| 洛浦县| 泾川县| 洛南县| 旬阳县| 永州市| 金湖县| 永安市| 泗阳县| 大宁县| 桃园县| 东海县| 麦盖提县| 易门县| 绥滨县| 宣城市| 三亚市| 弥勒县| 湖南省| 南丹县| 南溪县| 武冈市| 镶黄旗| 巴塘县| 嵊泗县| 德保县| 黄山市| 惠州市| 富顺县| 太白县| 蓬安县| 奈曼旗|