国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在小程序Canvas中使用measureText

Yi_Zhi_Yu / 2952人閱讀

摘要:有時候我們在使用繪制一段文本時,會需要通過方法獲取文本的寬度,例如創建標簽獲取一段文本的寬度如上所示,返回的其實是一個對象,它包含了文本的寬度,上的解釋如下在微信小程序現在的版本中,小程序的還不支持,所以我自己寫了個類似于方法,通過獲取文本

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

創建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;
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97784.html

相關文章

  • 開發適用于微信小程序的跨平臺圖表庫:part1

    摘要:寫在前面微信小程序出來已經有一段時間了,上也有很多人開源了很多項目。但是由于微信平臺的限制底層能力調用為一系列封裝,圖表的制作一直是個比較頭疼的問題。這個圖形庫已經完成基本的圖形建設,已經支持瀏覽器,,以及微信小程序等環境。 寫在前面 微信小程序出來已經有一段時間了,github上也有很多人開源了很多項目。但是由于微信平臺的限制(底層Canvas能力調用為一系列JSBridge封裝),...

    mingde 評論0 收藏0
  • 程序如何生成海報分享朋友圈

    摘要:項目需求寫完有一段時間了,但是還是想回過來總結一下,一是對項目的回顧優化等,二是對坑的地方做個記錄,避免以后遇到類似的問題。需求利用微信強大的社交能力通過小程序達到裂變的目的,拉取新用戶。 項目需求寫完有一段時間了,但是還是想回過來總結一下,一是對項目的回顧優化等,二是對坑的地方做個記錄,避免以后遇到類似的問題。 需求 利用微信強大的社交能力通過小程序達到裂變的目的,拉取新用戶。生成的...

    Lemon_95 評論0 收藏0
  • 程序如何生成海報分享朋友圈

    摘要:項目需求寫完有一段時間了,但是還是想回過來總結一下,一是對項目的回顧優化等,二是對坑的地方做個記錄,避免以后遇到類似的問題。需求利用微信強大的社交能力通過小程序達到裂變的目的,拉取新用戶。摘要: 小程序開發必備技能啊... 原文:小程序如何生成海報分享朋友圈 作者:小白 Fundebug經授權轉載,版權歸原作者所有。 項目需求寫完有一段時間了,但是還是想回過來總結一下,一是對項目的回顧優...

    lemon 評論0 收藏0
  • [填坑手冊]小程序Canvas生成海報(一)---完整流程

    摘要:海報生成示例最近智酷君在做小程序生成海報的項目中遇到一些棘手的問題,在網上查閱了各種資料,也踩扁了各種坑,智酷君希望把這些填坑經驗整理一下分享出來,避免后來的兄弟重復掉坑。 showImg(https://segmentfault.com/img/bVbs5V8?w=343&h=517);海報生成示例 最近智酷君在做[小程序]canvas生成海報的項目中遇到一些棘手的問題,在網上查閱了...

    shleyZ 評論0 收藏0

發表評論

0條評論

Yi_Zhi_Yu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<