中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-13 19:26:13 來源:腳本之家 閱讀:202 作者:4fun 欄目:web開發

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

創建canvas標簽

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

獲取一段文本的寬度

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var text = ctx.measureText('foo'); // TextMetrics object
text.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;
}

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安庆市| 石狮市| 泰安市| 观塘区| 承德市| 合水县| 江达县| 揭阳市| 黄梅县| 临汾市| 隆尧县| 五指山市| 思南县| 珲春市| 扎兰屯市| 灵山县| 河西区| 太湖县| 龙口市| 涪陵区| 广河县| 米泉市| 石楼县| 隆化县| 临泽县| 贵阳市| 揭西县| 宜丰县| 宿迁市| 饶阳县| 盐亭县| 南靖县| 民勤县| 日照市| 康保县| 南澳县| 九江县| 和静县| 明水县| 甘洛县| 文成县|