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

資訊專欄INFORMATION COLUMN

在小程序Canvas中使用measureText

Yi_Zhi_Yu / 2957人閱讀

摘要:有時(shí)候我們?cè)谑褂美L制一段文本時(shí),會(huì)需要通過方法獲取文本的寬度,例如創(chuàng)建標(biāo)簽獲取一段文本的寬度如上所示,返回的其實(shí)是一個(gè)對(duì)象,它包含了文本的寬度,上的解釋如下在微信小程序現(xiàn)在的版本中,小程序的還不支持,所以我自己寫了個(gè)類似于方法,通過獲取文本

有時(shí)候我們?cè)谑褂肅anvas繪制一段文本時(shí),會(huì)需要通過measureText()方法獲取文本的寬度,例如:

創(chuàng)建canvas標(biāo)簽
獲取一段文本的寬度
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;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/97784.html

相關(guān)文章

  • 開發(fā)適用于微信小程序的跨平臺(tái)圖表庫(kù):part1

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

    mingde 評(píng)論0 收藏0
  • 程序如何生成海報(bào)分享朋友圈

    摘要:項(xiàng)目需求寫完有一段時(shí)間了,但是還是想回過來(lái)總結(jié)一下,一是對(duì)項(xiàng)目的回顧優(yōu)化等,二是對(duì)坑的地方做個(gè)記錄,避免以后遇到類似的問題。需求利用微信強(qiáng)大的社交能力通過小程序達(dá)到裂變的目的,拉取新用戶。 項(xiàng)目需求寫完有一段時(shí)間了,但是還是想回過來(lái)總結(jié)一下,一是對(duì)項(xiàng)目的回顧優(yōu)化等,二是對(duì)坑的地方做個(gè)記錄,避免以后遇到類似的問題。 需求 利用微信強(qiáng)大的社交能力通過小程序達(dá)到裂變的目的,拉取新用戶。生成的...

    Lemon_95 評(píng)論0 收藏0
  • 程序如何生成海報(bào)分享朋友圈

    摘要:項(xiàng)目需求寫完有一段時(shí)間了,但是還是想回過來(lái)總結(jié)一下,一是對(duì)項(xiàng)目的回顧優(yōu)化等,二是對(duì)坑的地方做個(gè)記錄,避免以后遇到類似的問題。需求利用微信強(qiáng)大的社交能力通過小程序達(dá)到裂變的目的,拉取新用戶。摘要: 小程序開發(fā)必備技能啊... 原文:小程序如何生成海報(bào)分享朋友圈 作者:小白 Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 項(xiàng)目需求寫完有一段時(shí)間了,但是還是想回過來(lái)總結(jié)一下,一是對(duì)項(xiàng)目的回顧優(yōu)...

    lemon 評(píng)論0 收藏0
  • [填坑手冊(cè)]小程序Canvas生成海報(bào)(一)---完整流程

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

    shleyZ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<