今天遇到了獲取文字寬度的問題,查了很久,終於在一個國外網站上找到了方法,但是不能直接使用,於是修改了一下,成功使用到了項目中,在這裡分享給大家。
首先在body標簽最後添加一個子標簽:
. 代碼如下:
<span id="ruler">test</span>
然後添加相應的css代碼:
. 代碼如下:
#ruler {
visibility: hidden;
white-space: nowrap;
font-size: 24px;
}
接下來直接在String的原型中添加獲取文字寬度的函數,在js代碼中加入以下代碼即可:
. 代碼如下:
String.prototype.visualLength = function()
{
var ruler = $("#ruler");
ruler.text(this);
return ruler[0].offsetWidth;
}
最後在需要獲取文字寬度的地方調用即可,舉個例子:
. 代碼如下:
var text = "test";
var len = text.visualLength();
主要思路是添加一個隱藏的標簽,每次對該標簽賦值後,通過獲取該標簽的長度來獲取文字寬度。需要注意的是,只有已經被添加到DOM中的標簽才能獲取長度。
如果大家覺得對自己有幫助的話,還希望能幫頂一下,謝謝:)