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

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

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

有時(shí)候我們?cè)谑褂肅anvas繪制一段文本時(shí),會(huì)需要通過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對(duì)象,它包含了文本的寬度,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;
}

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

相關(guān)文章

最新評(píng)論

裕民县| 仙居县| 江城| 汾西县| 海伦市| 龙泉市| 枣强县| 交口县| 阳泉市| 天水市| 昔阳县| 甘孜县| 厦门市| 淮安市| 克拉玛依市| 营山县| 剑阁县| 乡宁县| 西昌市| 延寿县| 那坡县| 海兴县| 米易县| 沁水县| 资溪县| 西乌珠穆沁旗| 汨罗市| 科技| 夏津县| 金阳县| 吉隆县| 额敏县| 大同县| 拜泉县| 通州市| 武汉市| 桐梓县| 巴林右旗| 衡阳县| 临夏县| 马鞍山市|