摘要:有時(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
摘要:寫在前面微信小程序出來(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封裝),...
摘要:項(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á)到裂變的目的,拉取新用戶。生成的...
摘要:項(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)...
摘要:海報(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)上查閱了...
閱讀 3244·2021-11-22 12:07
閱讀 1885·2021-10-12 10:11
閱讀 1048·2019-08-30 15:44
閱讀 2948·2019-08-30 12:45
閱讀 2200·2019-08-29 16:41
閱讀 1644·2019-08-29 16:35
閱讀 2632·2019-08-29 12:57
閱讀 1156·2019-08-26 13:51