最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年10月19日 11:59:41   作者:4fun  
有時(shí)候我們在使用Canvas繪制一段文本時(shí),會需要通過measureText()方法獲取文本的寬度,本文主要介紹了在小程序Canvas中使用measureText的方法示例,需要的朋友可以參考下

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

創(chuàng)建canvas標(biāo)簽

<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返回的其實(shí)是一個(gè)TextMetrics對象,它包含了文本的寬度,MDN上的解釋如下:

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

在微信小程序現(xiàn)在的版本(v2.13.7)中,小程序的canvas還不支持measureText,所以我自己寫了個(gè)類似于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;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

洪洞县| 泰顺县| 岳西县| 漳浦县| 呼伦贝尔市| 长武县| 敖汉旗| 南昌县| 宜阳县| 崇信县| 广宁县| 金昌市| 城步| 常州市| 内黄县| 海城市| 太湖县| 阿克苏市| 丹东市| 隆子县| 天柱县| 五河县| 高密市| 察雅县| 四子王旗| 交城县| 洛宁县| 会理县| 陈巴尔虎旗| 霍州市| 惠来县| 金寨县| 麻阳| 吕梁市| 商河县| 科尔| 兴宁市| 恭城| 布尔津县| 湘潭县| 盈江县|